Go把字符串转成整数:不要忽略Atoi返回的错误

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

表格数据经过整理后成为结构化卡片
浅色主题概念配图,选自本站AI生成图库;非事件现场或产品实测截图。

转换规则与业务范围分开

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
喜欢就支持一下吧
点赞0 分享