package main import ( "bufio" "fmt" "os" "strings" ) func main() { // 準備從標準輸入讀取資料。 inputReader := bufio.NewReader(os.Stdin) fmt.Println("Please input your name:") // 讀取資料直到碰到 n 為止。 input, err := inputReader.ReadString('n') if err != nil { fmt.Printf("An error occurred: %sn", err) // 異常退出。 os.Exit(1) } else { // 用切片操作刪除最後的 n 。 name := input[:len(input)-2] fmt.Printf("Hello, %s! What can I do for you?n", name) } for { input, err = inputReader.ReadString('n') if err != nil { fmt.Printf("An error occurred: %sn", err) continue } input = input[:len(input)-2] // 全部轉換為小寫。 input = strings.ToLower(input) switch input { case "": continue case "nothing", "bye": fmt.Println("Bye!") // 正常退出。 os.Exit(0) default: fmt.Println("Sorry, I didn't catch you.") } } }這個聊天程式在問候使用者之後會不斷地詢問“是否可以幫忙”,但是實際上它什麼忙也幫不上,因為它現在什麼也聽不懂,除了 nothing 和 bye,一看到這兩個詞,它就會與使用者“道別”,停止執行,現在試執行一下這個命令原始碼檔案:
D:code>go run test.go
Please input your name:
->Robert
Hello, Robert! What can I do for you?
->A piece of cake, please.
Sorry, I didn't catch you.
->Bye
Bye!