標籤:imp pack pointer package 方法 port 類型 value val
類型*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)}
Go中的方法集