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 關注
- 109 瀏覽
添加回答
舉報