突破Input.Scan()
在Go中,input.Scan()函数通常用于从安慰。虽然问题中提供的代码有效地工作,但作者寻求一种方法来消除检查关键字“end”以跳出循环的 if 子句。
根据文档, Scan()当扫描停止时返回 false,无论是到达输入末尾还是遇到错误。然而,作者的理解是,空行应该触发返回 false,从而结束循环,而不需要 if 子句。
经检查,提供的代码中使用的默认扫描器实际上是 ScanLines ,而不是 ScanWords。 ScanLines 返回文本的每一行,去除任何行结尾,并且可能包含空行。重要的是,即使输入的最后一个非空行也会被返回,即使它缺少行结尾。
扫描仪仅在遇到 EOF(文件结束)时停止操作。因此,当用户输入“end”表示输入结束时,仍然需要原代码中的if子句来终止循环。
以上是Go 中空行可以触发 input.Scan() 返回 False 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!