reader.ReadString 与 ReadLine
在 Go 中,bufio.Reader 提供了两种从输入源读取文本的方法:ReadString 和 ReadLine 。这些方法的不同之处在于处理行尾换行符的方式:
ReadString 读取字符串,直到遇到指定的分隔符。默认情况下,分隔符为 n(换行符),这意味着它读取整行文本。但是,它不会从返回的字符串中删除分隔符。在问题中提到的代码中:
text, _ := reader.ReadString('\n')
文本变量将包含包含换行符的输入字符串。因此,在检查“Alice”或“Bob”时,输入末尾的换行符会导致比较失败。
ReadLine 读取一行文本,不包括换行符。它返回一个字节片,其中包含该行中的字符以及指示遇到的任何问题的错误值。要将字节切片转换为字符串,需要像这样进行转换:
text, _, _ := reader.ReadLine()
通过使用ReadLine而不是ReadString,文本变量中不包含换行符,解决了比较不正确的问题.
另一种选择是使用以下命令从输入字符串中手动修剪换行符strings.TrimSpace 函数:
text = strings.TrimSpace(text)
这将删除所有前导和尾随空白字符,包括换行符,确保干净的比较。
以上是Go 中的 ReadString 与 ReadLine:什么时候应该使用它们进行文本输入?的详细内容。更多信息请关注PHP中文网其他相关文章!