strconv包专用于字符串与基础类型(int/float/bool)的安全高效转换,不支持结构体;字符串转数字需检查error,数字转字符串有Itoa等便捷函数,bool仅识别"true"/"false"及"1"/"0"。

在 Go 语言中,strconv 包是标准库中处理字符串与基础类型(如 int、float、bool)之间转换的核心工具,安全、高效且无需外部依赖。它不支持结构体或自定义类型,专注做好“字符串 ↔ 基本类型”这件事。
字符串转数字:ParseInt、ParseFloat、ParseUint
转换失败时返回 error,必须检查——这是 Go 的惯用做法,也是避免 panic 的关键。
-
strconv.ParseInt("123", 10, 64):将十进制字符串转为int64,第二个参数是进制(常用 10),第三个是位宽(32/64) -
strconv.ParseFloat("3.1415", 64):转为float64(64 是精度,固定写 64;32 也可,但注意精度损失) -
strconv.ParseUint("255", 10, 64):用于无符号整数,适合处理非负大数(如时间戳、ID)
⚠️ 注意:"123abc" 这类含非法字符的字符串会返回 error;空字符串、仅空格也会失败。
数字转字符串:Itoa、FormatInt、FormatFloat
最常用的是 strconv.Itoa(n),它是 FormatInt(int64(n), 10) 的快捷写法,专用于 int → string(十进制)。
立即学习“go语言免费学习笔记(深入)”;
-
strconv.FormatInt(int64(255), 16)→"ff"(十六进制小写) -
strconv.FormatFloat(3.14159, 'f', 2, 64)→"3.14"('f' 表示定点格式,2 是小数位数) -
strconv.FormatBool(true)→"true",简洁直接
字符串与布尔值互转
Go 对 bool 字符串约定明确:"true"/"false"(全小写)可被 strconv.ParseBool 正确识别;"1"、"0" 也支持,但 "yes"、"on" 不行。
-
strconv.ParseBool("true")→true, nil -
strconv.ParseBool("1")→true, nil -
strconv.FormatBool(false)→"false"
安全转换封装建议
实际项目中常需容错(如默认值兜底),可简单封装:
- 用
if n, err := strconv.Atoi(s); err == nil { ... }替代裸调用 - 对可能为空或异常的输入,先
strings.TrimSpace再转换 - 避免用
strconv.Itoa转非 int 类型——它只接受 int,传 int32/int64 会编译报错,记得显式转换:strconv.Itoa(int(x))
基本上就这些。用熟了会发现,strconv 没有魔法,但每一步都清晰可控。










