🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
一个指向自定义类型的值的指针,它的方法集由该类型定义的所有方法组成,无论这些方法接受的是一个值还是一个指针。如果在指针上调用一个接受值的方法,Go语言会聪明地将该指针解引用,并将指针所指的底层值作为方法的接收者 ~~~ package main import "fmt" type Student struct { name string age int } // 指针作为接收者 引用语义 func (s *Student) SetStuPointer() { (*s).name = "Bob" s.age = 18 } // 值作为接收者 值语义 func (s Student) SetStuValue() { s.name = "Peter" s.age = 18 } func main() { //指针作为接收者,引用语义 s1 := &Student{"Miller", 18} //初始化 s1 .SetStuPointer() s1.SetStuValue() (*s1).SetStuValue() fmt.Println(s1) // &{Bob 18} } ~~~