多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
一个指向自定义类型的值的指针,它的方法集由该类型定义的所有方法组成,无论这些方法接受的是一个值还是一个指针。如果在指针上调用一个接受值的方法,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} } ~~~