答案:Go中strconv包用于高效转换字符串与数字。使用Atoi和ParseInt将字符串转整数,Itoa和FormatInt将整数转字符串,ParseFloat和FormatFloat处理浮点数,ParseBool和FormatBool转换布尔值,均需注意进制、精度及错误处理,性能优于fmt.Sprintf。

在Go语言开发中,字符串和数字之间的转换是常见操作。strconv 包提供了简单高效的方法来完成这些任务,避免了格式化I/O操作的开销。掌握 strconv 的基本用法,能让你的代码更清晰、性能更好。
字符串转整数
将字符串解析为整数主要使用 strconv.Atoi 和 strconv.ParseInt。
Atoi 是 "ASCII to integer" 的缩写,适合快速转换十进制整数:
- num, err := strconv.Atoi("123")
- if err != nil {
- // 处理错误,比如输入不是有效数字
- }
- // num 现在是 int 类型的 123
ParseInt 更灵活,支持指定进制和位长:
立即学习“go语言免费学习笔记(深入)”;
- val, err := strconv.ParseInt("1010", 2, 64) // 二进制转 int64
- hexVal, _ := strconv.ParseInt("FF", 16, 32) // 十六进制转 int32
注意返回的是 int64,需根据需要做类型断言或转换。
整数转字符串
将整数转为字符串推荐使用 strconv.Itoa 和 strconv.FormatInt。
Itoa 是最常用的方式:
- str := strconv.Itoa(456)
- // str 为 "456"
FormatInt 支持不同进制输出:
Perl学习手札是台湾perl高手写的一篇文章,特打包为chm版,方便大家阅读。 关于本书 1. 关于Perl 1.1 Perl的历史 1.2 Perl的概念 1.3 特色 1.4 使用Perl的环境 1.5 开始使用 Perl 1.6 你的第一个Perl程序 2. 标量变量(Scalar) 2.1 关于标量 2.1.1 数值 2.1.2 字符串 2.1.3 数字与字符串转换 2.2 使用你自己的变量 2.3 赋值 2.3.1 直接设定 2.3.2 还可以这样 2.4 运算 2.5 变量的输出/输入 2.
- binStr := strconv.FormatInt(10, 2) // 转二进制:"1010"
- hexStr := strconv.FormatInt(255, 16) // 转十六进制:"ff"
结果均为小写,如需大写可结合 strings.ToUpper。
浮点数与字符串互转
处理浮点数使用 strconv.ParseFloat 和 strconv.FormatFloat。
ParseFloat 解析字符串为 float64:
- f, err := strconv.ParseFloat("3.14", 64)
- if err != nil {
- // 处理格式错误
- }
FormatFloat 控制浮点数输出格式:
- str := strconv.FormatFloat(3.1415, 'f', 2, 64) // 输出 "3.14"
- sci := strconv.FormatFloat(1e5, 'e', -1, 64) // 科学计数法:"1e+05"
第三个参数是精度,'f' 表示标准小数,'e' 为科学记数法。
布尔值转换
布尔类型也支持字符串转换:
- b, _ := strconv.ParseBool("true") // 得到 true
- s := strconv.FormatBool(true) // 得到 "true"
ParseBool 接受 "true"/"false"(不区分大小写),以及 "1"/"0"。
基本上就这些。合理使用 strconv 能让类型转换更安全高效。记得总是检查 error 返回值,尤其是在处理用户输入时。这些函数比 fmt.Sprintf 性能更好,是生产环境中的首选。细节虽小,但容易忽略。









