当前位置:  首页>> 技术小册>> GO面试指南

在 Go 语言中,对象选择器(selector)可以用于访问结构体类型和指针类型的成员变量和成员方法。当我们使用对象选择器访问指针类型的成员时,Go 语言会自动解引用指针,以方便我们访问指针指向的结构体类型的成员。

下面是一个示例代码:

  1. type Person struct {
  2. Name string
  3. Age int
  4. }
  5. func (p *Person) SayHello() {
  6. fmt.Printf("Hello, my name is %s and I'm %d years old.\n", p.Name, p.Age)
  7. }
  8. func main() {
  9. p := &Person{Name: "Alice", Age: 18}
  10. p.SayHello() // 自动解引用 p,相当于 (*p).SayHello()
  11. }

在上面的代码中,我们定义了一个 Person 结构体类型和一个 SayHello() 方法。注意,该方法的接收者是一个指向 Person 类型的指针 *Person。在 main() 函数中,我们创建了一个指向 Person 类型的指针 p,并使用对象选择器调用了 p 的 SayHello() 方法。

需要注意的是,在调用方法时,我们没有显式地对 p 进行解引用,而是直接使用了 p.SayHello() 的语法,这是因为 Go 语言会自动解引用 p,相当于 (*p).SayHello()。这种自动解引用的机制让我们在访问指针类型的成员时更加方便,不必每次都显式地进行解引用。


该分类下的相关小册推荐: