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

时间:2019-07-04 10:25:46

标签: go slice glide-golang

如何从golang中的切片中选择随机值,我需要将其显示为cli。我有一个字符串,我通过拆分将其转换为字符串数组。现在我想从字符串数组中选择随机字符串并在cli中显示给用户,我需要让用户输入屏幕上显示的特定字符串 并比较用户输入的输入。

nil

1 个答案:

答案 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函数,它很适合您的问题。