【Go进阶】详解方法的值类型和指针类型区别

目录

值类型和指针类型


值类型和指针类型

方法也有值类型的方法和指针类型的区别,也就是以下两种receiver:

func (p person) setname(name string) { p.name = name }
func (p *person) setage(age int) { p.age = age }

setname()方法中是值类型的receiver,setage()方法中是指针类型的receiver。它们是有区别的。

  • 首先,setage()方法的p是一个指针类型的person实例,所以方法体中的p.age实际上等价于(*p).age。再者,方法就是函数,Go中所有需要传值的时候,都是按值传递的,也就是拷贝一个副本

setna

猜你喜欢

转载自blog.csdn.net/fanjufei123456/article/details/129948008