为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查 Scanln 在 Golang 中是否抛出错误

如何检查 Scanln 在 Golang 中是否抛出错误

Go
蛊毒传说 2021-09-21 20:31:48
我是 Go 的新手。我一直在寻找答案,我知道确实有一个我只是没有找到。为了更好地解释我的问题,这是我的代码:func main() {    ...    inputs := new(Inputs)    fmt.Println("Input two numbers: ")    fmt.Scanln(&inputs.A)    fmt.Scanln(&inputs.B)    fmt.Println("Sum is:", inputs.A + inputs.B)}这是我的结构:type Inputs struct {    A, B int}如果我为输入 A 输入“123”,为输入 B 输入另一个“123”,我将得到“ Sum is: 246 ”的输出。但是如果我错误地输入'123j',它将不再起作用,因为 A 和 B 只接受 int(s)。现在,如何从fmt.Scanln捕捉恐慌或者有什么办法?提前致谢。
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

Scanln 返回值...不要忽略它们

您忽略了两个重要的返回值。扫描计数和错误 .. 如果有。

n, err := fmt.Scanln(&inputs.A)

...会给你你需要检查的东西。err会告诉您需要换行但未找到换行符 .. 因为您尝试将值存储在int.. 中,并且当可用值中的最后一个字符不是换行符时出错


查看完整回答
反对 回复 2021-09-21
  • 1 回答
  • 0 关注
  • 314 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信