Go 語言的
strconv
包提供了用于基本數據類型之間轉換的函數,包括字符串到其他基本類型的轉換,以及其他基本類型到字符串的轉換。
字符串轉換為基本數據類型
strconv.Atoi
:將字符串轉換為?int
strconv.ParseBool
:將字符串轉換為?bool
strconv.ParseFloat
:將字符串轉換為?float64
strconv.ParseInt
:將字符串轉換為?int64
,可以指定進制strconv.ParseUint
:將字符串轉換為?uint64
,可以指定進制
package mainimport ("fmt""log""strconv"
)func main() {//字符串轉換為基本數據類型//----------------------------------- strconv.Atoi - 將字符串轉換為 int。intStr := "123"intVal, err := strconv.Atoi(intStr)if err != nil {log.Fatal(err)}fmt.Printf("%v,%T\n", intVal, intVal)fmt.Println(intVal) // 輸出: 123//----------------------------------- strconv.ParseBool - 將字符串轉換為 bool。boolStr := "true"boolVal, err := strconv.ParseBool(boolStr)if err != nil {log.Fatal(err)}fmt.Printf("%v,%T\n", boolVal, boolVal)fmt.Println(boolVal) // 輸出: true//----------------------------------- strconv.ParseFloat - 將字符串轉換為 float64。floatStr := "123.45"floatVal, err := strconv.ParseFloat(floatStr, 64)if err != nil {log.Fatal(err)}fmt.Printf("%v,%T\n", floatVal, floatVal)fmt.Println(floatVal) // 輸出: 123.45//----------------------------------- strconv.ParseInt - 將字符串轉換為 int64,可以指定進制。intStrParseInt := "123" // 默認為10進制intValParseInt, err := strconv.ParseInt(intStrParseInt, 10, 64)if err != nil {log.Fatal(err)}fmt.Printf("%v,%T\n", intValParseInt, intValParseInt)fmt.Println(intValParseInt) // 輸出: 123//----------------------------------- 2進制binStr := "11010001"var intVal2, err2 = strconv.ParseInt(binStr, 2, 64)if err2 != nil {log.Fatal(err2)}fmt.Printf("%v,%T\n", intVal2, intVal2)fmt.Println(intVal2) // 輸出: 209//-----------------------------------strconv.ParseUint - 將字符串轉換為 uint64,可以指定進制。uintStr := "123"uintVal, err := strconv.ParseUint(uintStr, 10, 64)if err != nil {log.Fatal(err)}fmt.Printf("%v,%T\n", uintVal, uintVal)fmt.Println(uintVal) // 輸出: 123
}
?
基本數據類型轉換為字符串
strconv.Itoa
:將?int
?轉換為字符串strconv.FormatBool
:將?bool
?轉換為字符串strconv.FormatFloat
:將?float64
?轉換為字符串,可以指定格式化選項strconv.FormatInt
:將?int64
?轉換為字符串,可以指定進制strconv.FormatUint
:將?uint64
?轉換為字符串,可以指定進制
package mainimport ("fmt""strconv"
)func main() {//基本數據類型轉換為字符串//-----------------------------------strconv.Itoa - 將 int 轉換為字符串。intVal := 123intStr := strconv.Itoa(intVal)fmt.Printf("%v,%T\n", intStr, intStr)fmt.Println(intStr) // 輸出: 123//strconv.FormatBool - 將 bool 轉換為字符串。boolVal := trueboolStr := strconv.FormatBool(boolVal)fmt.Printf("%v,%T\n", boolStr, boolStr)fmt.Println(boolStr) // 輸出: true//-----------------------------------strconv.FormatFloat - 將 float64 轉換為字符串,可以指定格式化選項。floatVal := 123.45floatStr := strconv.FormatFloat(floatVal, 'f', 2, 64)fmt.Printf("%v,%T\n", floatStr, floatStr)fmt.Println(floatStr) // 輸出: 123.45//-----------------------------------strconv.FormatInt - 將 int64 轉換為字符串,可以指定進制。intVal64 := int64(123)intStr64 := strconv.FormatInt(intVal64, 10) // 10進制fmt.Printf("%v,%T\n", intStr64, intStr64)fmt.Println(intStr64) // 輸出: 123//----------------------------------- 2進制intStr2 := strconv.FormatInt(intVal64, 2)fmt.Printf("%v,%T\n", intStr2, intStr2)fmt.Println(intStr) // 輸出: 1111011//-----------------------------------strconv.FormatUint - 將 uint64 轉換為字符串,可以指定進制。uintVal := uint64(123)uintStr := strconv.FormatUint(uintVal, 10) // 10進制fmt.Printf("%v,%T\n", uintStr, uintStr)fmt.Println(uintStr) // 輸出: 123//----------------------------------- 16進制uintStr = strconv.FormatUint(uintVal, 16)fmt.Printf("%v,%T\n", uintStr, uintStr)fmt.Println(uintStr) // 輸出: 7b
}
?
?