1 回答
TA贡献2012条经验 获得超12个赞
如果稍微更改一下代码,您会发现它strconv.Atoi(input)返回了一个错误。我希望您现在已经学到了关于 Go 如何进行错误处理的重要一课。
错误是:strconv.Atoi: parsing "1\n": invalid syntax
out, err := strconv.Atoi(input)
if err != nil {
fmt.Printf("Error is: %v\n", err)
}
解决此问题的一种方法是input使用strings.TrimSuffix()进行修剪:
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter a number")
input, _ := reader.ReadString('\n')
input = strings.TrimSuffix(input, "\n")
fmt.Printf("Type of the entered value is %T\n", input)
fmt.Println(input)
out, err := strconv.Atoi(input)
if err != nil {
fmt.Printf("Error is: %v\n", err)
}
fmt.Printf("Type now is: %T\n", out)
fmt.Printf("Value now is %d\n", out)
fmt.Println(out)
您还可以使用Scanner,它不需要您删除\n:
scanner := bufio.NewScanner(os.Stdin)
fmt.Print("Enter a number")
scanner.Scan()
input := scanner.Text()
- 1 回答
- 0 关注
- 83 浏览
添加回答
举报