简介:
在实际开发中我们往往需要对一些常用的数据类型进行转换,如 string、int、int64、float 等数据类型之间的转换,Go语言中的 strconv 包为我们提供了字符串和基本数据类型之间的转换功能。
strconv 包中常用的函数包括 Atoi()、Itia()、parse 系列函数、format 系列函数、append 系列函数等。
Parse 系列函数
ParseInt()
ParseInt() 函数用于返回字符串表示的整数值(可以包含正负号),函数签名如下:
func ParseInt(s string, base int, bitSize int) (i int64, err error)
参数说明:
- base 指定进制,取值范围是 2 到 36。如果 base 为 0,则会从字符串前置判断,“0x”是 16 进制,“0”是 8 进制,否则是 10 进制。
- bitSize 指定结果必须能无溢出赋值的整数类型,0、8、16、32、64 分别代表 int、int8、int16、int32、int64。
- 返回的 err 是 *NumErr 类型的,如果语法有误,err.Error = ErrSyntax,如果结果超出类型范围 err.Error = ErrRange。
示例代码如下:
func main() {
str := "-99"
num, err := strconv.ParseInt(str, 10, 0)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(num)
}
}
运行结果如下:
-99
Format 系列函数
FormatInt()
FormatInt() 函数用于将整型数据转换成指定进制并以字符串的形式返回,函数签名如下:
func FormatInt(i int64, base int) string
其中,参数 i 必须是 int64 类型,参数 base 必须在 2 到 36 之间,返回结果中会使用小写字母“a”到“z”表示大于 10 的数字。
示例代码如下:
func main() {
var num int64 = 100
str := strconv.FormatInt(num, 16)
fmt.Printf("type:%T,value:%v\n ", str, str)
}
运行结果如下:
type:string,value:64