返回随机问候
注意: 本文是系列教程的一部分,该系列始于 创建 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 以确认代码正常工作。多次运行,注意问候语的变化。
结论
接下来,你将使用切片来问候多个人。