2 回答
TA贡献1883条经验 获得超3个赞
您的第一个示例是一个指针切片,您不需要每次都获取切片中指针的地址然后取消引用这些指针。更惯用的 Go 看起来像(稍微编辑以在没有“minion”包的情况下在操场上运行):
http://play.golang.org/p/88WsCVonaL
// creating the slice
ms := make([]*Minion, 2)
//populating the slice and make the elements start doing something
for i := range ms {
ms[i] = NewMinion(i)
ms[i].Start()
// (or equivalently)
// m := MewMinion(i)
// m.Start()
// ms[i] = m
}
// wait while the minions do all the work
time.Sleep(time.Millisecond * 500)
// make the elements of the slice stop with what they were doing
for _, m := range ms {
m.Stop()
}
TA贡献1801条经验 获得超15个赞
这都是错误的。
绝对不需要在代码中获取指针的地址。ms是一个指针切片,您的构造函数返回一个指针,因此只需直接分配 i :
for i := range ms {
ms[i] = minion.NewMinion()
ms[i].Start()
}
死的简单。
- 2 回答
- 0 关注
- 151 浏览
添加回答
举报