1.8 对象选择器自动解引用怎么用? ================================ 从一个结构体实例对象中获取字段的值,通常都是使用 ``.`` 这个操作符,该操作符叫做 **选择器**\ 。 选择器有一个妙用,可能大多数人都不清楚。 当你对象是结构体对象的指针时,你想要获取字段属性时,按照常规理解应该这么做 .. code:: go type Profile struct { Name string } func main() { p1 := &Profile{"iswbm"} fmt.Println((*p1).Name) // output: iswbm } 但还有一个更简洁的做法,可以直接省去 ``*`` 取值的操作,选择器 ``.`` 会直接解引用,示例如下 .. code:: go type Profile struct { Name string } func main() { p1 := &Profile{"iswbm"} fmt.Println(p1.Name) // output: iswbm } 也正是这个原因,因此在给你一个方法指定定一个接收者的时候,访问接收者的对象时,不需要像下面这样显示的解引用 .. code:: go type Person struct { name string } func (p *Person) Say() { fmt.Println((*p).name) } 而可以直接这样写 .. code:: go type Person struct { name string } func (p *Person) Say() { fmt.Println(p.name) }