Golang?中的?strconv?包常用函數(shù)及用法詳解
strconv 是 Golang 中一個(gè)非常常用的包,主要用于字符串和基本數(shù)據(jù)類型之間的相互轉(zhuǎn)換。本文將詳細(xì)介紹 strconv 包的常用函數(shù)及用法。
strconv.Atoi 和 strconv.Itoa
Atoi 函數(shù)用于將字符串轉(zhuǎn)換為 int 類型,Itoa 函數(shù)則用于將 int 類型轉(zhuǎn)換為字符串類型。簡(jiǎn)單使用示例如下:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "123"
intValue, _ := strconv.Atoi(str)
fmt.Printf("str to int: %d\n", intValue)
intValue += 1
str = strconv.Itoa(intValue)
fmt.Printf("int to str: %s\n", str)
}strconv.Parse 系列函數(shù)
strconv.Parse 系列函數(shù)用于將字符串解析為指定類型。其中常用的函數(shù)有 ParseInt、ParseBool 和 ParseFloat。簡(jiǎn)單使用示例如下:
package main
import (
"fmt"
"strconv"
)
func main() {
// 解析整數(shù)
intStr := "123"
intValue, _ := strconv.ParseInt(intStr, 10, 64)
fmt.Printf("Parsed int value: %d\n", intValue)
// 解析布爾值
boolStr := "true"
boolValue, _ := strconv.ParseBool(boolStr)
fmt.Printf("Parsed bool value: %t\n", boolValue)
// 解析浮點(diǎn)數(shù)
floatStr := "3.14"
floatValue, _ := strconv.ParseFloat(floatStr, 64)
fmt.Printf("Parsed float value: %f\n", floatValue)
}strconv.Format 系列函數(shù)
strconv.Format 系列函數(shù)用于將基本數(shù)據(jù)類型轉(zhuǎn)換為字符串類型。常用的函數(shù)有 FormatInt、FormatBool 和 FormatFloat。簡(jiǎn)單使用示例如下:
package main
import (
"fmt"
"strconv"
)
func main() {
// 格式化整數(shù)
intValue := 123
intStr := strconv.FormatInt(int64(intValue), 10)
fmt.Printf("Formatted int string: %s\n", intStr)
// 格式化布爾值
boolValue := true
boolStr := strconv.FormatBool(boolValue)
fmt.Printf("Formatted bool string: %s\n", boolStr)
// 格式化浮點(diǎn)數(shù)
floatValue := 3.14
floatStr := strconv.FormatFloat(floatValue, 'f', -1, 64)
fmt.Printf("Formatted float string: %s\n", floatStr)
}strconv.Append 系列函數(shù)
strconv.Append 系列函數(shù)用于將基本數(shù)據(jù)類型追加到已存在的字節(jié)數(shù)組中。常用的函數(shù)有 AppendInt、AppendBool 和 AppendFloat。簡(jiǎn)單使用示例如下:
package main
import (
"fmt"
"strconv"
)
func main() {
// 追加整數(shù)到字節(jié)數(shù)組
num1 := 123
byteSlice := []byte("Number: ")
byteSlice = strconv.AppendInt(byteSlice, int64(num1), 10)
fmt.Printf("Appended int: %s\n", byteSlice)
// 追加布爾值到字節(jié)數(shù)組
boolVal := true
byteSlice = []byte("Bool: ")
byteSlice = strconv.AppendBool(byteSlice, boolVal)
fmt.Printf("Appended bool: %s\n", byteSlice)
// 追加浮點(diǎn)數(shù)到字節(jié)數(shù)組
floatVal := 3.14
byteSlice = []byte("Float: ")
byteSlice = strconv.AppendFloat(byteSlice, floatVal, 'f', -1, 64)
fmt.Printf("Appended float: %s\n", byteSlice)
}strconv.IsPrint 和 strconv.IsGraphic
strconv.IsPrint 函數(shù)用于判斷給定的 Unicode 字符是否可打印,可打印字符是指那些可以在屏幕上顯示的字符。strconv.IsGraphic 函數(shù)用于判斷給定的 Unicode 字符是否是圖形字符,圖形字符是指可視化的字符。簡(jiǎn)單使用示例如下:
package main
import (
"fmt"
"strconv"
)
func main() {
chars := []rune{'H', 'e', 'l', '\n', '?', 127}
for _, char := range chars {
fmt.Printf("Character: %c, IsPrint: %v\n", char, strconv.IsPrint(char))
fmt.Printf("Character: %c, IsGraphic: %v\n", char, strconv.IsGraphic(char))
}
}strconv.Quote 和 strconv.Unquote 系列函數(shù)
strconv.Quote 系列函數(shù)用于轉(zhuǎn)義和引用字符串的功能,將字符串轉(zhuǎn)換為可以直接表示的字符串字面值(literal),包括添加轉(zhuǎn)義字符和引號(hào)。簡(jiǎn)單使用示例如下:
package main
import (
"fmt"
"strconv"
)
func main() {
str := `路多辛的, "所思所想"!`
quoted := strconv.Quote(str)
fmt.Println("Quoted: ", quoted)
unquoted, err := strconv.Unquote(quoted)
if err != nil {
fmt.Println("Unquote error: ", err)
} else {
fmt.Println("Unquoted: ", unquoted)
}
}strconv.CanBackquote
strconv.CanBackquote 函數(shù)用于檢查字符串是否可以不變地表示為單行反引號(hào)字符串(即以 `` 開頭和結(jié)尾的字符串)。簡(jiǎn)單使用示例如下:
package main
import (
"fmt"
"strconv"
)
func main() {
str1 := "Hello, world!"
str2 := "`Hello, world!`"
str3 := "`Hello,\nworld!`"
fmt.Println(strconv.CanBackquote(str1)) // 輸出:false
fmt.Println(strconv.CanBackquote(str2)) // 輸出:true
fmt.Println(strconv.CanBackquote(str3)) // 輸出:false
}到此這篇關(guān)于Golang 中的 strconv 包詳解的文章就介紹到這了,更多相關(guān)Golang strconv 包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang?gorm的關(guān)系關(guān)聯(lián)實(shí)現(xiàn)示例
這篇文章主要為大家介紹了golang?gorm的關(guān)系關(guān)聯(lián)實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
go?doudou開發(fā)單體RESTful服務(wù)快速上手教程
這篇文章主要為大家介紹了go?doudou開發(fā)單體RESTful服務(wù)快速上手教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Go語(yǔ)言函數(shù)的延遲調(diào)用(Deferred Code)詳解
本文將介紹Go語(yǔ)言函數(shù)和方法中的延遲調(diào)用,正如名稱一樣,這部分定義不會(huì)立即執(zhí)行,一般會(huì)在函數(shù)返回前再被調(diào)用,我們通過(guò)一些示例來(lái)了解一下延遲調(diào)用的使用場(chǎng)景2022-07-07
GoLang使goroutine停止的五種方法實(shí)例
goroutine是Go并行設(shè)計(jì)的核心,下面這篇文章主要給大家介紹了關(guān)于GoLang使goroutine停止的五種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07

