一、简介
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
包提供的函数将会非常有用。
在使用这些函数的时候,需要根据具体情况选择转换函数,并注意异常处理。