strconv包中包含了一系列辅助函数,用于字符串类型变量和其他类型变量之间的转换。
其中最常用的就是字符串和整型变量的相互转换。Atoi(string to int),Itoa(int to string)分别是字符串转整型和整型转字符串(注意:这个两个函数中的整型变量都是十进制整数)。函数声明如下:
func Atoi(s string) (int, error)
// 当字符串格式错误时会返回strcov.NumError
func Itoa(i int) string
当需要将字符串转换为其他类型变量时,就需要使用到strconv中的ParseX系列函数,一共有四个函数ParseBool,ParseInt,ParseFloat,ParseUint
,下面是详细的函数说明:
-
func ParseBool(str string) (bool, error)
函数接收一个字符串作为参数,返回转换后的布尔值,如输入格式错误,返回NumError(它接受真值:
1, t, T, TRUE, true
, True;假值:0, f, F, FALSE, false, False
) -
func ParseInt(s string, base int, bitSize int) (i int64, err error)
函数接收三个参数,第一个是需要转换的字符串;第二个是转换后整型变量的底数(0,2-36),一般取值是0,2,8,16;第三个是整型变量的大小(0-64),一般来说,0、8、16、32 和 64 分别代表 int、int8、int16、int32 和 int64,如果实际数据超出了bitSize,会产生数据溢出和截断。函数返回值和ParseBool类似,返回转换后的整型变量,如输入格式错误,返回NumError。
实际上Atoi等价于
ParseInt(s, 10, 0)
-
func ParseUint(s string, base int, bitSize int) (n uint64, err error)
ParseUint和ParseInt类似,针对无符号整型。
-
func ParseFloat(s string, bitSize int) (float64, error)
函数接收两个参数,第一个是输入字符串,第二个是转换后浮点数的二进制长度,两个典型值是32和64;无论bitSize取值如何,函数返回值类型都是float64。
与ParseX相对于,可以使用FormatX系列函数可以将其他类型变量转换为字符串类型。与上面相对应也有四个函数:
-
func FormatBool(b bool) string
-
func FormatInt(i int64, base int) string
-
func FormatUint(i uint64, base int) string
前面三个函数可以和ParseX函数相对应,这里不再具体阐述,与ParseX函数不同,从其他类型转换为字符串总会成功而不会返回错误。
-
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
FormatFloat函数接收四个参数,第一个参数是输入浮点数,第二个是浮点数的显示格式(可以是
b, e, E, f, g, G
),第三个是浮点数精度(对于不同的fmt参数,具有不同的含义),最后一个表示浮点数的大小。对于FormatFloat参数的详细介绍见 GoDoc FormatFloat