回答

收藏

从 Go Slice 中选择一个随机值

技术问答 技术问答 210 人阅读 | 0 人回复 | 2023-09-11

情况:
9 r; R( D5 m% y  O% v- {3 x我有一个值,需要随机选择一个值。然后我想用一个固定的字符串连接它。到目前为止,这是我的代码:
( _+ V1 p* M8 r( {1 c0 r' N+ c' d" t
    func main()create the reasons slice and append reasons to itreasons := make([]string,0)reasons = append(reasons,   "Locked out",   &quotipes broke",   "Food poisoning",   "Not feeling well")message := fmt.Sprint("Gonna work from home...",pick a random reason )}# c2 F9 ]* t+ N; |4 V$ D: B; V
问题:  x9 z4 Q0 [4 v" J( N
是否有内置函数可以通过执行来执行选择随机原因部分来帮我?: X) @6 ~0 i- p4 u# M3 W/ X4 q/ W
                                                               
; `1 U8 J, G1 f' C    解决方案:                                                               
: @! _" S6 k; d+ t2 |8 Q! G                                                                使用功能,Intn从rand在包中选择随机指数。
+ P$ z) T7 T# y! A! p9 A# v3 _0 Y4 S
    import (  "math/rand"  "time")// ...rand.Seed(time.Now().Unix() // initialize global pseudo random generatormessage := fmt.Sprint("Gonna work from home...",reasons[rand.Intn(len(reasons))])
    ) g5 k6 U$ y3 F! K0 n' M5 R
使用其他解决方案Rand对象。
' z0 W) D8 Q5 e* p
    s := rand.NewSource(time.Now().Unix())r := rand.New(s) // initialize local pseudorandom generator r.Intn(len(reasons)); h8 Y) A) F4 p3 H+ r1 c/ ?' E; e
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则