除了字符串、文字符号和字节之间的转换,我们常常也需要在数值和字符串之间相互转换,Go语言的 strconv 包提供了字符串与数值类型之间的相互转换功能。可以将数值类型转换为字符串,也可以将字符串转换为数值类型。
strconv 包里提供了很多函数,大概分为以下几类:
- 字符串转 int:Atoi();
- int 转字符串:Itoa();
- Parse 类函数将 string 转换为指定的数值类型:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。因为 string 类型转数值类型可能会失败,所以这些函数都有第二个返回值表示转换是否成功;
- Format 类函数将指定的数值类型转 string 类型:FormatBool()、FormatFloat()、FormatInt()、FormatUint();
- Append 类函数用于将指定的数值类型转换成字符串后追加到一个切片中:AppendBool()、AppendFloat()、AppendInt()、AppendUint()。
当有些类型无法转换时,将会报错并返回的错误信息,strconv 包中包含两个自定义的 error 类型:
var ErrRange = errors.New("value out of range")
var ErrSyntax = errors.New("invalid syntax")
例如,使用 Atoi("a") 将 "a" 转换为 int 类型将打印如下所示的错误信息: