【问题标题】:golang exception to rule "interface pointer can't implement interface"规则“接口指针无法实现接口”的golang异常
【发布时间】:2015-07-29 18:06:23
【问题描述】:

在 golang.org 的官方常见问题解答中,under pointers 有这样的引用: “洞察力是,虽然指向具体类型的指针可以满足接口,但有一个例外,指向接口的指针永远不能满足接口”

出于好奇,上述规则的例外是什么? 即接口指针什么时候可以实现接口?

【问题讨论】:

    标签: pointers go interface implements


    【解决方案1】:

    下面写着:

    一个例外是任何值,即使是指向接口的指针, 可以分配给空接口类型(interface{})的变量。 即便如此,如果该值是指向 一个接口;结果可能会令人困惑。

    【讨论】:

    • 你说得对,我刚刚测试过它运行正常。谢谢 func main() { type I interface{} f := func(p interface{}) { fmt.Println("runs") } var i I = 1 f(&i) }
    猜你喜欢
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    相关资源
    最近更新 更多