strconv 是 Go 中字符串与数字互转的唯一标准库方案,专为安全、明确、可控设计;必须用 strconv.Atoi 处理外部输入,因其错误类型明确,而 fmt.Sscanf 易静默截断;ParseFloat 的 bitSize 参数指位宽非小数位数,应优先用 64;ParseBool 仅认 “true”/”false”/”1″/”0″;高频拼接应避免重复调用 strconv.Itoa,改用 AppendInt 或 fmt.Sprintf;所有解析函数不自动 trim 空格。
Go 语言里 strconv 是做基础字符串与数字互转的唯一标准库方案,没有替代品,也不该用 fmt.Sscanf 或反射凑合——它专为安全、明确、可控而设计。
什么时候必须用 strconv.Atoi 而不是 fmt.Sscanf
当你要把用户输入、配置文件字段、HTTP 查询参数这类外部字符串转成整数时,strconv.Atoi 是首选。它返回 (int, error),错误类型明确(比如 "invalid syntax" 或 "value out of range"),便于区分是格式错还是溢出。
而 fmt.Sscanf 不校验进制、不区分空格和非法字符、错误信息模糊,还可能静默截断——比如 fmt.Sscanf("123abc", "%d", &i) 居然成功赋值 i=123,这在参数校验场景下是灾难。
实操建议: