返回隨機問候
注意: 本文是系列教學的一部分,該系列始於 建立 Go 模組。
在本節中,你將更改程式碼,使其不再每次都返回相同的問候語,而是返回幾個預定義問候語中的一個。
為此,你將使用 Go 切片。切片類似於陣列,但其大小會隨著加入和刪除項目而動態變化。切片是 Go 中最有用的型別之一。
你將加入一個包含三個問候語的小切片,然後讓你的程式碼隨機返回其中一條訊息。有關切片的更多資訊,請參閱 Go 部落格上的 Go 切片。
步驟
1. 修改 greetings/greetings.go 以返回隨機問候
在 greetings/greetings.go 中,更改你的程式碼,使其看起來如下所示。
在這段程式碼中,你:
- 加入了一個
randomFormat函數,該函數返回一個隨機選擇的問候語格式。注意,randomFormat以小寫字母開頭,使其僅對其所在套件中的程式碼可訪問(換句話說,它未匯出)。 - 在
randomFormat中,宣告一個包含三種訊息格式的formats切片。宣告切片時,省略括號中的大小,像這樣:[]string。這告訴 Go,切片底層陣列的大小可以動態更改。 - 使用
math/rand套件 產生一個隨機數,用於從切片中選擇一個項目。 - 在
Hello中,呼叫randomFormat函數以取得你將返回的訊息的格式,然後將格式和name值一起用於建立訊息。 - 像以前一樣返回訊息(或錯誤)。
2. 更新 hello/hello.go 以使用 "Gladys" 這個名字
在 hello/hello.go 中,更改你的程式碼,使其看起來如下所示。
你只需在 hello.go 中的 Hello 函數呼叫中加入 Gladys 的名字(或你喜歡的其他名字)作為參數。
3. 執行 hello.go 以確認程式碼正常工作
在 hello 目錄的命令列中,執行 hello.go 以確認程式碼正常工作。多次執行,注意問候語的變化。
結論
接下來,你將使用切片來問候多個人。