我有一个简单的代码来读取来自控制台的所有输入:
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,从而脱离循环。
扫描会将扫描程序推进到下一个令牌,然后通过Bytes或Text方法提供该标记。当扫描停止时,它会返回false,要么通过到达输入的末尾,要么返回错误。当扫描返回false后,Err方法将返回扫描过程中发生的任何错误,除非它是
io.EOF,Err将返回零。如果拆分函数返回100个空令牌而不推进输入,则扫描恐慌。这是扫描仪常见的错误模式。
我是否误解了这些文件,而且实际上有必要有这样一个if-子句来解释?(我使用Go 1.5.2使用"go run“运行程序。)
发布于 2019-02-07 10:21:20
对于Mac系统,您可以尝试默认情况下破坏Ctrl + D。如果您在行的末尾,则必须按Ctrl + D 2次。
https://stackoverflow.com/questions/34481065
复制相似问题