-2

如何从golang中的切片中选择随机值,我需要将其显示给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”]
4

1 回答 1

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作用。此外,如果您想构建更强大的解决方案,请查看 中shuffle可用的功能,因为它适合您的问题。rand

于 2019-07-04T10:54:30.920 回答