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
}