首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >突破input.Scan()

突破input.Scan()
EN

Stack Overflow用户
提问于 2015-12-27 13:51:58
回答 5查看 11.5K关注 0票数 22

我有一个简单的代码来读取来自控制台的所有输入:

代码语言:javascript
运行
复制
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“运行程序。)

EN

Stack Overflow用户

发布于 2019-02-07 10:21:20

对于Mac系统,您可以尝试默认情况下破坏Ctrl + D。如果您在行的末尾,则必须按Ctrl + D 2次

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34481065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档