如何从 golang 中的 slice 中选取随机值,我需要将其显示到 cli。我有一个字符串,我通过拆分将其转换为字符串数组。现在我想从字符串数组中选择随机字符串并在 cli 中显示给用户,我需要要求用户输入显示在屏幕上的特定字符串 并比较用户输入的内容。
string randgen := ‘na gd tg er dd wq ff gen vf ws’
s:= String.split(randgen,””)
s = [“na”, “gd”, ”er”, “tg”, “er”, “dd”, “wq”, “ff”, “gen”, “vf”, “ws”]
最佳答案
您的代码存在一些问题。使用 :=
初始化变量时不应定义类型。
此外,不建议依赖空格来构造和拆分 slice ,因为不清楚如果例如您有多个空格或字符之间的制表符会发生什么。
这是一个“正常工作”的最小解决方案。
package main
import (
"fmt"
"math/rand"
"strings"
"time"
)
func main() {
randgen := `na gd tg er dd wq ff gen vf ws`
s := strings.Split(randgen, " ")
fmt.Println(s)
rand.Seed(time.Now().UnixNano())
randIdx := rand.Intn(len(s))
fmt.Println("Randomly selected slice value : ", s[randIdx])
}
我建议阅读 rand 包文档以了解 rand.Seed
的作用。此外,如果您想构建更强大的解决方案,请查看 rand
中可用的 shuffle
函数,因为它适合您的问题。
关于go - 从 slice 中选择随机值并在 cli 上打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56885896/