golang的指针receiver和非指针receiver的区别?
发布时间:2020-12-16 18:48:51 所属栏目:大数据 来源:网络整理
导读:golang的指针receiver和非指针receiver的区别? 最大的区别应该是指针传递的是对像的引用,这样在方法里操作的时候可以动态修改对像的属性值。 非指针传递的是对像的拷贝。 这个应该和PHP的引用的用法差不多。 package mainimport ("fmt")type Person struct
golang的指针receiver和非指针receiver的区别? 最大的区别应该是指针传递的是对像的引用,这样在方法里操作的时候可以动态修改对像的属性值。 非指针传递的是对像的拷贝。 这个应该和PHP的引用的用法差不多。
package main import ( "fmt" ) type Person struct { Name string Age int } func (p *Person) SayHi1() { p.Name = "leon1" } func (p Person) SayHi2() { p.Name = "leon2" } func main() { p1 := &Person{Name: "test",Age: 10} fmt.Println("name1 : " + p1.Name) p1.SayHi1() fmt.Println("name2 : " + p1.Name) p2 := Person{Name: "test1",Age: 11} fmt.Println("name3: " + p2.Name) p2.SayHi2() fmt.Println("name4 : " + p2.Name) } 结果: name1 : test name2 : leon1 name3: test1 name4 : test1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |