如何从golang中的切片中选择随机值,我需要将其显示为cli。我有一个字符串,我通过拆分将其转换为字符串数组。现在我想从字符串数组中选择随机字符串并在cli中显示给用户,我需要让用户输入屏幕上显示的特定字符串 并比较用户输入的输入。
nil
答案 0 :(得分:1)
您的代码存在一些问题。使用:=
初始化变量时,请勿定义类型。
此外,不建议使用空格来构造和分割切片,因为例如,如果您有多个空格,或者在字符之间使用制表符,则不清楚会发生什么。
这是一个“可行”的最小解决方案。
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
函数,它很适合您的问题。