首页 >后端开发 >Golang >Go 中的 ReadString 与 ReadLine:什么时候应该使用它们进行文本输入?

Go 中的 ReadString 与 ReadLine:什么时候应该使用它们进行文本输入?

Linda Hamilton
Linda Hamilton原创
2024-12-26 19:13:14846浏览

ReadString vs. ReadLine in Go: When Should You Use Each for Text Input?

reader.ReadString 与 ReadLine

在 Go 中,bufio.Reader 提供了两种从输入源读取文本的方法:ReadString 和 ReadLine 。这些方法的不同之处在于处理行尾换行符的方式:

ReadString

ReadString 读取字符串,直到遇到指定的分隔符。默认情况下,分隔符为 n(换行符),这意味着它读取整行文本。但是,它不会从返回的字符串中删除分隔符。在问题中提到的代码中:

text, _ := reader.ReadString('\n')

文本变量将包含包含换行符的输入字符串。因此,在检查“Alice”或“Bob”时,输入末尾的换行符会导致比较失败。

ReadLine

ReadLine 读取一行文本,不包括换行符。它返回一个字节片,其中包含该行中的字符以及指示遇到的任何问题的错误值。要将字节切片转换为字符串,需要像这样进行转换:

text, _, _ := reader.ReadLine()

通过使用ReadLine而不是ReadString,文本变量中不包含换行符,解决了比较不正确的问题.

替代解决方案:修剪字符串

另一种选择是使用以下命令从输入字符串中手动修剪换行符strings.TrimSpace 函数:

text = strings.TrimSpace(text)

这将删除所有前导和尾随空白字符,包括换行符,确保干净的比较。

以上是Go 中的 ReadString 与 ReadLine:什么时候应该使用它们进行文本输入?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn