输入看起来像数字,不代表转换一定成功。strconv.Atoi同时返回整数和错误,调用方应先检查错误,再使用结果,避免把失败与有效的零混在一起。

转换规则与业务范围分开
Atoi按十进制转换为int。转换成功之后,仍要检查业务是否允许负数、零或过大的值。需要明确固定宽度时,应理解ParseInt等接口,而不是假设int在所有目标架构上范围相同。
不要用下划线丢掉错误
如果把错误忽略,后续代码可能使用一个并不代表有效输入的数值。可以给用户明确的格式反馈,但日志不要原样记录敏感字段。错误处理应靠返回值,不依赖匹配某段错误文本。
正常与错误输入一起练习
下例检查42能够转换,非数字文本会返回错误,不进行任何网络或文件操作。实际配置中是否接受前后空格,应由格式约定决定;不要通过随意清理字符把本来无效的输入变成另一个数字。
可以运行的练习
package main
import (
"fmt"
"strconv"
)
func main() {
value, err := strconv.Atoi("42")
if err != nil || value != 42 { panic("conversion failed") }
_, bad := strconv.Atoi("not-a-number")
if bad == nil { panic("invalid input accepted") }
fmt.Println(value, bad != nil)
}
示例已在本地隔离环境运行检查。使用固定输入,不访问外部接口,也不读取真实业务文件。
资料与继续学习
Go标准库:strconv。资料查阅日期:2026年9月30日。步骤与练习由本站整理。
资料查阅与编辑日期:2026年9月30日。作者:玖柒。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






