Go 从切片中选择随机值并在cli上打印

Go 从切片中选择随机值并在cli上打印,go,slice,glide-golang,Go,Slice,Glide Golang,如何从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”,

如何从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”]

您的代码存在一些问题。使用
:=
初始化变量时,不应定义类型

此外,不建议依赖空格来构造和分割切片,因为不清楚如果有多个空格,或者在字符之间有一个制表符,会发生什么情况

这是一个“有效”的最小解决方案

主程序包
进口(
“fmt”
“数学/兰德”
“字符串”
“时间”
)
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)
fmt.Println(“随机选择的切片值:”,s[randIdx])
}

我建议阅读软件包文档,了解
rand.Seed
的功能。另外,如果您想构建更健壮的解决方案,请查看
rand
中提供的函数,因为它适合您的问题

使用math/rand.Intn(len(s))。您尝试了哪些不起作用的内容?不,我尝试选择随机字符串并显示到cli。我无法洗牌和打印你的代码甚至无法编译。请花一些时间想出您需要帮助的。谢谢,我尝试了上面的代码,它从切片中选择第一个字母。每次运行它时,它都会在切片中选择并打印不同的项目。例如,在第一次运行中,它可能选择并打印
dd
,第二次
na
,第三次
gen
。这是你期望的吗?在本地运行它,因为Go游乐场存在
rand
问题,因为时间是恒定的。