要从结构体数组中随机取出一个结构体,可以使用rand包中的rand.Intn函数生成一个随机的索引值,然后使用该索引值获取相应的结构体。
以下是一个示例代码:
- package main
- import (
- "fmt"
- "math/rand"
- "time"
- )
- type Person struct {
- Name string
- Age int
- }
- func main() {
- people := []Person{
- {Name: "Alice", Age: 25},
- {Name: "Bob", Age: 30},
- {Name: "Charlie", Age: 35},
- {Name: "Dave", Age: 40},
- }
- // 设置随机种子
- rand.Seed(time.Now().UnixNano())
- // 生成随机索引
- randomIndex := rand.Intn(len(people))
- // 获取随机结构体
- randomPerson := people[randomIndex]
- fmt.Println("Random person:", randomPerson)
- }
在此示例中,我们定义了一个Person结构体,并创建了一个包含多个Person结构体的切片。然后,使用rand.Intn(len(people))生成一个随机索引值,该索引值范围在[0, len(people))内。最后,使用该随机索引值从people切片中获取对应的结构体,并将其打印出来。
请注意,在使用rand包时,应先使用rand.Seed函数设置随机种子,以保证每次运行程序时都会生成不同的随机数。在示例代码中,我们使用当前时间作为随机种子。
"小礼物走一走,来肥宅自学平台支持我"
评论区
共条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~
首页上页1下页尾页