reader.ReadString 不會去掉初始分隔符號
為了創建一個程式來問候名為Alice 或Bob 的用戶,開發人員遇到一個問題,即使是合法的名稱也會引發不受歡迎的回應。程式錯誤地拒絕了 Alice 和 Bob 的進入。
問題
問題源自於程式中 reader.ReadString('n') 的使用。此函數檢索字符,直到遇到換行符。但是,它不會自動從返回的字串中刪除分隔符,從而導致在使用者輸入中包含額外的換行符。
解
解決此問題,有兩種可能的方法:
1.修剪換行符
在計算輸入字串之前,使用strings.TrimSpace函數刪除輸入字串中的任何前導或尾隨空格。這有效地刪除了導致問題的換行符。
if aliceOrBob(strings.TrimSpace(text)) { fmt.Printf("Hello, ", text) }
2.使用 ReadLine 而不是 ReadString
或者,可以使用 ReadLine 函數來取代 ReadString。 ReadLine 會擷取一行文本,但傳回的字串中不包含換行符。
text, _, _ := reader.ReadLine() if aliceOrBob(string(text)) { fmt.Printf("Hello, ", text) }
說明
在 ReadLine 中使用 string(text) 的原因是ReadLine 傳回一個位元組切片,而 aliceOr 需要一個字串參數。
以上是為什麼 `reader.ReadString` 不刪除初始分隔符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!