首页 > 解决方案 > 指针切片别名的范围

问题描述

我有以下结构(其中 Vector3 是自定义结构)

type Polygon []*Vector3

如何使用 Polygon 的 Vector3 在底层切片上迭代(使用范围)?

例子:

func (p *Polygon) print() {
    for _, v := range p { // not allowed!! :(
       // do something
    }
}

标签: go

解决方案


您不能在指针上进行范围。这里p*Polygon指 type 的指针Polygon。因此,取消引用指向范围的指针。

*用于dereference指针变量。

func (p *Polygon) print() {
    for _, v := range *p {
        // do something
    }
}

推荐阅读