我有这个简单的代码来读取来自控制台的所有输入:
input := bufio.NewScanner(os.Stdin) //Creating a Scanner that will read the input from the console
for input.Scan() {
if input.Text() == "end" { break } //Break out of input loop when the user types the word "end"
fmt.Println(input.Text())
}
代码正常工作。我想要做的是摆脱 if 子句。根据我对文档的理解,如果一行为空,input.Scan()则应返回 false 并因此跳出循环。
Scan 将 Scanner 推进到下一个令牌,然后可以通过 Bytes 或 Text 方法获得该令牌。当扫描停止时,它返回 false,无论是到达输入的末尾还是错误。Scan 返回 false 后,Err 方法将返回扫描过程中发生的任何错误,除非是io.EOF,Err 将返回 nil。如果 split 函数返回 100 个空标记而不推进输入,则扫描恐慌。这是扫描仪的常见错误模式。
我是否误解了文档,实际上有必要使用这样的 if 子句来突破吗?(我正在使用 Go 1.5.2 使用“go run”运行程序。)
收到一只叮咚
函数式编程
Qyouu
相关分类