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”?它到底是什么意思(*动物)?这是取消引用动物,所以是一个值,该值被传递给接收者,接收者接受指向动物的指针而不是值?为什么这是合法的?正确的一个应该是地址吗?
森林海
相关分类