在没有条件检查的情况下逃避输入循环
在 Go 中,bufio.Scanner 允许您从控制台逐行读取输入。但是,标准 Scan 函数会自动前进到下一个标记,如果没有明确的中断条件,可能会导致无限循环。
文档指出 Scan 在到达输入末尾时返回 false。这是否意味着您可以跳过跳出循环的条件检查?
文档误解
不幸的是,您误解了文档。 Scanner 使用的默认分割函数是 ScanLines,它将每行文本作为单独的标记返回。
ScanLines 的行为
ScanLines 有两个关键行为:
打破循环
因此,单独的空行并不表示输入结束。仅当达到文件结束 (EOF) 条件时,循环才会中断,通常由按 Ctrl-D 等操作触发。
解决方案
转义如果没有 if 子句的输入循环,您必须:
但是,为了简单起见,通常建议保留条件检查并避免潜在的边缘情况。
以上是你能在没有条件检查的情况下逃脱 Go `bufio.Scanner` 输入循环吗?的详细内容。更多信息请关注PHP中文网其他相关文章!