突破Input.Scan()
在Go中,input.Scan()函數通常用於從安慰。雖然問題中提供的程式碼有效地工作,但作者尋求一種方法來消除檢查關鍵字「end」以跳出循環的 if 子句。
根據文檔, Scan()當掃描停止時返回 false,無論是到達輸入末尾還是遇到錯誤。然而,作者的理解是,空行應該觸發返回 false,從而結束循環,而不需要 if 子句。
經過檢查,提供的程式碼中使用的預設掃描器實際上是 ScanLines ,而不是 ScanWords。 ScanLines 傳回文字的每一行,移除任何行結尾,並且可能包含空白行。重要的是,即使輸入的最後一個非空行也會被傳回,即使它缺少行結尾。
掃描器僅在遇到 EOF(檔案結束)時停止操作。因此,當使用者輸入「end」表示輸入結束時,仍需要原始程式碼中的if子句來終止循環。
以上是Go 中空行可以觸發 input.Scan() 回傳 False 嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!