Golang教程:如何实现随机问候语功能
Golang教程:如何实现随机问候语功能
我正在学习 go.dev/doc/tutorial/random-greeting 上的教程。
我复制了教程中 hello.go 和 greetings.go 的代码。程序可以运行,但在我的机器上(Ubuntu 24.04),它总是返回相同的问候语。无论我运行多少次,结果都一样,这意味着 rand 函数总是返回相同的索引。
func randomFormat() string {
// 消息格式的切片。
formats := []string{
"Hi, %v. Welcome!",
"Great to see you, %v!",
"Hail, %v! Well met!",
}
// 通过为格式切片指定一个随机索引,返回随机选择的消息格式。
return formats[rand.Intn(len(formats))]
}
更多关于Golang教程:如何实现随机问候语功能的实战教程也可以访问 https://www.itying.com/category-94-b0.html
3 回复
Dean_Davidson:
func randomFormat() string { // A slice of message formats. formats := []string{ "Hi, %v. Welcome!", "Great to see you, %v!", "Hail, %v! Well met!", } // Return a randomly selected message format by specifying // a random index for the slice of formats. return formats[rand.Intn(len(formats))] }
谢谢,Dean。在我的机器上也是同样的结果。
更多关于Golang教程:如何实现随机问候语功能的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这很可能只是巧合。此外,rand.Intn 是伪随机的,并非真正的随机。但运行以下代码:
func main() {
for i := 0; i < 5; i++ {
fmt.Println(randomFormat())
}
}
func randomFormat() string {
// 消息格式的切片。
formats := []string{
"Hi, %v. Welcome!",
"Great to see you, %v!",
"Hail, %v! Well met!",
}
// 通过为格式切片指定一个随机索引,返回一个随机选择的消息格式。
return formats[rand.Intn(len(formats))]
}
…在 Playground 上产生了以下输出:
Hail, %v! Well met!
Hi, %v. Welcome!
Hi, %v. Welcome!
Hi, %v. Welcome!
Great to see you, %v!
自己运行一下:



