go - 从 slice 中选择随机值并在 cli 上打印

标签 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”, “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/

相关文章:

c - 为什么 CGo 不能识别我在头文件中声明的结构?

unit-testing - 在 go api 调用中测试

arrays - 将数组中的N个元素从后向前移动

shell - 从 shell 脚本按下 Enter 后读取 GoLang 命令行参数

go - 对 golang 项目布局 repo 在实践中的工作方式感到困惑

encryption - 用公钥解密

matrix - 访问 Julia 矩阵中的任意行

python - 如何使用 .loc 对 DF 进行切片,列表中可能包含在索引/列中找不到的元素

go - 不需要的 Glide 导入