gpt4 book ai didi

pointers - 使用非指针值调用指针接收器方法

转载 作者:数据小太阳 更新时间:2023-10-29 03:12:27 26 4
gpt4 key购买 nike

<分区>

请看下面的代码。我知道非指针接收器可以接受指针和非指针值,但指针接收器只能接受指针值。话虽如此,我不明白最后一个电话是如何工作的,而倒数第二个电话却没有。 ( Run Here )

问题是我能够从非指针方法调用指针接收器方法。这在 other similar question 中没有解释。 .该答案仅解释了指针调用指针接收器方法。

package main

import (
"fmt"
)

type person struct {
name string
}

type human interface {
speak() string
}

func (p *person) speak() string {
return "Speak() called by " + p.name
}

func saySomething(h human) {
fmt.Println("area", h.speak())
}

func main() {
p := person{"harsh"}
//works
saySomething(&p)

//doesn't work
//saySomething(p)

//works
p.speak()
}

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com