【发布时间】:2020-06-27 09:40:59
【问题描述】:
我有以下结构(其中 Vector3 是自定义结构)
type Polygon []*Vector3
如何使用 Polygon 的 Vector3 迭代(使用范围)底层切片?
例子:
func (p *Polygon) print() {
for _, v := range p { // not allowed!! :(
// do something
}
}
【问题讨论】:
-
p是一个指针,先解引用再迭代。例如for ... := range *p { .... -
或者,您可以在非指针接收器类型上声明该方法,即
func (p Polygon) print() {...,然后您不必取消引用,您的原始尝试将按预期工作。
标签: go