type animal struct{ sound string}func (a *animal) bark(s string) { (*a).sound = s}var yourAnimal *animal //yourAnimal is an address so this makes sense i.e. the receiver expects an address since it is of type *animal:yourAnimal.bark("woof")fmt.Println(*yourAnimal)//But why does this prints out the value "waff"?(*yourAnimal).bark("waff")fmt.Println(*yourAnimal) // 2为什么这个(我拥有的最后一个Println //2)打印出值“waff”?它到底是什么意思(*动物)?这是取消引用动物,所以是一个值,该值被传递给接收者,接收者接受指向动物的指针而不是值?为什么这是合法的?正确的一个应该是地址吗?
1 回答
森林海
TA贡献2011条经验 获得超2个赞
接收器有一个指针接收器。这意味着,调用实际上是 ,它与上一个调用的对象相同。bark
(*yourAnimal).bark("waff")
(&(*yourAnimal)).bark("waff")
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报
0/150
提交
取消