对于不是包名的主表达式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) }
最后更新于1年前