簡體   English   中英

從切片中選擇隨機值並在 cli 上打印

[英]Pick the random value from slice and print on cli

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

您的代碼存在一些問題。 使用:=初始化變量時不應定義類型。

此外,不建議依賴空格來構造和拆分切片,因為目前尚不清楚如果您有多個空格或字符之間的制表符會發生什么情況。

這是一個“正常工作”的最小解決方案。

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函數,因為它適合您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM