nums := make([]int, 0)
{
var d int
for {
_, err := fmt.Scan(&d)
if err != nil {
break
}
nums = append(nums, d)
}
}
这适用于从标准输入读取整数。但是如果 stdin 看起来像1 2 3 f4 5,nums最终将[1 2 3]不会报告任何错误。
处理这个问题的最佳方法是什么?(即,我希望 EOF fromfmt.Scan以静默方式退出循环,但应报告所有其他错误)。
编辑:这io.EOF就是我所需要的——我没有在http://golang.org/pkg/fmt/ 上找到记录
nums := make([]int, 0)
{
var d int
for {
_, err := fmt.Scan(&d)
if err != nil {
if err != io.EOF {
log.Fatal(err)
}
break
}
nums = append(nums, d)
}
}
相关分类