13.8 选择器

对于不是包名的主表达式x,选择器表达式x.f表示值x的字段或方法f。如果x是包名,那么点符号指的是限定标识符。

根据f是字段还是方法,标识符f被称为字段选择器或方法选择器。选择器表达式的类型是f的类型。

例子:

ype Point struct {
    X, Y float32
}

func (p *Point) Move(dx, dy float32) {
  p.X += dx  // 值 p 的字段 X 被通过字段选择器表达式 p.X 访问。p.X 的类型是 float32,与 X 相同。注意,p 的类型是 *Point,并且 p.X 等价于 (*p).X
  p.Y += dy
}

func (p *Point) MoveHorz(distance float32) {
  p.Move(distance, 0.0)    // 在这个例子中,使用方法选择器表达式 p.Move(distance, 0.0) 调用值 p 的方法 Move,由于 p 是指针类型,因此这相当于 (*p).Move(distance, 0.0)
}

最后更新于