Go中的方法集
类型*T方法集
// code_018_struct_method_set project main.gopackage mainimport ( "fmt")//类型*T方法集type Person struct { name string sex byte age int}//指针作为接收者,引用语义func (p *Person) SetInfoPointer() { (*p).name = "yoyo" p.sex = 'f' p.age = 22}//值作为接收者,值语义func (p Person) SetInfoValue() { p.name = "xxx" p.sex = 'm' p.age = 33}func main() { //p 为指针类型 var p *Person = &Person{"mike", 'm', 18} p.SetInfoPointer() //func (p) SetInfoPointer() fmt.Println(p) p.SetInfoValue() //func (*p) SetInfoValue() fmt.Println(p) (*p).SetInfoValue() //func (*p) SetInfoValue() fmt.Println(p)}
类型T的方法集
// code_018_struct_method_set2 project main.gopackage mainimport ( "fmt")//类型T方法集type Person struct { name string sex byte age int}func (p *Person) SetInfoPointer() { (*p).name = "yoyo" p.sex = 'f' p.age = 22}func (p Person) SetInfoValue() { p.name = "xxx" p.sex = 'm' p.age = 33}func main() { //p为普通类型 var p Person = Person{"ck_go", 'm', 18} (&p).SetInfoPointer() p.SetInfoPointer() p.SetInfoValue() (&p).SetInfoValue() fmt.Println(p)}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。