Go字符串与数值转换
Go语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明。Go语言字符串与数值常用strconv包的函数来转换。strconv包含一下类型:
Atoi :string转成int 示例如下
1 |
i,err := strconv.Atoi("66") |
- err: 如果err=nil表示转换成功,i返回int型值
Itoa:int转成string 示例如下:
1 |
s := strconv.Itoa(66) |
等同于FormatInt(int64(i), 10)
ParseBool:string转成bool型 示例如下:
1 |
b,err := strconv.ParseBool("true") |
err: 如果err=nil表示转换成功,b返回bool型值
ParseFloat:string转成float型 示例如下:
1 |
f,err := strconv.ParseFloat("12.33",64) |
- ParseFloat(s string, bitSize int)
- bitSize:32为float32 64为float64
- err: 如果err=nil表示转换成功,f返回float64型值
ParseInt:string转成int型 示例如下:
i, err := strconv.ParseInt("-42", 10, 64)
- ParseInt(s string, base int, bitSize int)
- base:0, 2-36
- bitSizes 0, 8, 16, 32, 64
- err: 如果err=nil表示转换成功,i返回int64型值
ParseUint:string转成unit型 示例如下
1 |
u, err := strconv.ParseUint("42", 10, 64) |
- ParseUint(s string, base int, bitSize int)
- base:0, 2-36。
- bitSizes 0, 8, 16, 32, 64
- err: 如果err=nil表示转换成功,i返回uint64型值
FormatBool:bool转成string 示例如下:
1 |
s := strconv.FormatBool(true) |
s为 返回string型值
FormatFloat:float转成string 示例如下:
1 |
s := strconv.FormatFloat(3.1415, 'E', -1, 64) |
- FormatFloat(f float64, fmt byte, prec, bitSize int)
- fmt:有 'b' (二进制指数), 'e' (十进制指数), 'E' (十进制指数), 'f' (浮点数,小数点位数自动补0), 'g' (浮点数,末尾为0自动去掉), 'G' (浮点数,末尾为0自动去掉), 'x' (十六进制分数和二进制指数), or 'X' (十六进制分数和二进制指数)
- prec:小数点位数,-1表示默认
FormatInt:int转成string 示例如下:
1 |
s := strconv.FormatInt(36, 36) |
- FormatInt(i int64, base int)
- base:取值范围2-36,10以后为a-z的小写
ParseUint:uint转成string 示例如下:
1 |
s := strconv.FormatUint(36, 16) |
- FormatUint(i uint64, base int)
- base:取值范围2-36,10以后为a-z的小写