一、简介
Go语言中的strconv包提供了基本数据类型之间相互转换的函数。
其中,strconv.Itoa和strconv.Atoi用于将字符串和整型互相转换,strconv.ParseFloat、strconv.ParseInt和strconv.ParseUint则可以将字符串转换为浮点数、有符号整型和无符号整型。
二、strconv.Itoa和strconv.Atoi函数
strconv.Itoa函数将整型转换为字符串,示例代码如下:
package main import ( "fmt" "strconv" ) func main() { i := 666 s := strconv.Itoa(i) fmt.Printf("i 的类型是 %T,值是 %v\n", s, s) }
运行结果如下:
i 的类型是 string,值是 666
注:Itoa是格式化输出Println的逆操作,如果你要将数据写入到字符串里,可以使用fmt.Sprintf。但是性能可能会略逊于strconv.Itoa。
而strconv.Atoi函数将字符串转换为整型,示例代码如下:
package main import ( "fmt" "strconv" ) func main() { s := "666" if i, err := strconv.Atoi(s); err == nil { fmt.Printf("s 的类型是 %T,值是 %v\n", i, i) } else { fmt.Println(err) } }
运行结果如下:
s 的类型是 int,值是 666
三、strconv.ParseFloat、strconv.ParseInt和strconv.ParseUint函数
这三个函数用于将字符串转换为浮点数、有符号整型和无符号整型。示例代码如下:
package main import ( "fmt" "strconv" ) func main() { f, err := strconv.ParseFloat("3.1415", 64) if err != nil { fmt.Println(err) } else { fmt.Printf("f 的类型是 %T,值是 %v\n", f, f) } i, err := strconv.ParseInt("-42", 10, 64) if err != nil { fmt.Println(err) } else { fmt.Printf("i 的类型是 %T,值是 %v\n", i, i) } u, err := strconv.ParseUint("42", 10, 64) if err != nil { fmt.Println(err) } else { fmt.Printf("u 的类型是 %T,值是 %v\n", u, u) } }
运行结果如下:
f 的类型是 float64,值是 3.1415 i 的类型是 int64,值是 -42 u 的类型是 uint64,值是 42
四、结语
在日常开发中,经常需要进行不同类型之间的转换,因此了解strconv包提供的函数将会非常有用。
在使用这些函数的时候,需要根据具体情况选择转换函数,并注意异常处理。