strconv包中包含了一系列辅助函数,用于字符串类型变量和其他类型变量之间的转换。

Atoi & Itoa

其中最常用的就是字符串和整型变量的相互转换。Atoi(string to int),Itoa(int to string)分别是字符串转整型和整型转字符串(注意:这个两个函数中的整型变量都是十进制整数)。函数声明如下:

func Atoi(s string) (int, error)
// 当字符串格式错误时会返回strcov.NumError

func Itoa(i int) string 

ParseX

当需要将字符串转换为其他类型变量时,就需要使用到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。

FormatX

与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