[pkg] bufio
bufio @ golang
Type Reader
(b) ReadString(delim)
如果我們希望讀取使用者在 Terminal 輸入的文字,且這個文字超過一個以上的單字時,可以用 bufio.NewReader(os.Stdin)
來達到。
提示
如果希望從終端機取得的資料只包含一個單字,則可以使用 fmt.Scan()
方法。
reader.ReadString()
會讀取字串,直到遇到 delim
停止,並回傳包含 delim 以前的所有字串(這裡的 delim 就是 \n
):
func main() {
// 從 Terminal 取得使用者輸入的內容
rd := bufio.NewReader(os.Stdin)
fmt.Println("Enter anything...: ")
// 當使用者按下 enter(\n) 後終止
message, err := rd.ReadString('\n')
if err != nil {
fmt.Println(err)
}
fmt.Printf("###%s###", message)
}
輸出:
###fff
###
若有需要可以將輸出的結果再透過 strings.TrimSpace()
的方法將 \n
過濾掉:
messageWithoutLineBreak := strings.TrimSpace(message)
type Scanner
官方文件
type Scanner @ pkg.go.dev