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中文網其他相關文章!