回答

收藏

从 Go Slice 中选择一个随机值

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

情况:- S# n5 `$ U. N
我有一个值,需要随机选择一个值。然后我想用一个固定的字符串连接它。到目前为止,这是我的代码:6 J( A. B8 n9 ~* h0 c
    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 )}
    5 G8 O8 O$ l: S4 T4 n
问题:2 h# p2 p: a) `. h' t- F6 m4 d
是否有内置函数可以通过执行来执行选择随机原因部分来帮我?' B: G# D. m" ~7 J) q
                                                               
3 W* y" c4 m3 d- ?# G    解决方案:                                                               
' x% J& Q: z+ A. _8 d* S% I                                                                使用功能,Intn从rand在包中选择随机指数。- |' n; r& `9 ^  i7 e, B. a% o
    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))])1 ]7 I! U/ J% l- X* S. [! b
使用其他解决方案Rand对象。
+ G  _+ V4 z% F
    s := rand.NewSource(time.Now().Unix())r := rand.New(s) // initialize local pseudorandom generator r.Intn(len(reasons))
    ! r0 e/ i! v  H6 `- u8 p8 k
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则