gpt4 book ai didi

Golang 接口(interface) & *接口(interface)

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

我正在尝试在我的代码库中为我正在编写的游戏服务器更多地使用接口(interface),并了解高级概念以及何时应该使用接口(interface)(我认为)。在我的例子中,我使用它们将我的包相互分离,并使测试更容易。

我的问题归结为我有一个具有 ptr 接收方法的结构。然后我通过一个接口(interface)将这个结构传递给另一个函数,就像在这个 playground 中一样我很困惑为什么带有接口(interface)类型参数的函数可以接受实现该接口(interface)的地址。为什么不是func something(f *face)*interface有什么用?

最佳答案

“接口(interface)类型的参数可以接受实现该接口(interface)的地址”并不是这种情况。恰恰相反。

您的具体 foo 实现接口(interface)面。它没有。

只有 *foo 做,这是 Go 中的不同类型。

只能*foo 赋给face 类型的变量。 (好吧,Go 中有一些糖可以让你将 foo 寻址到一张脸,但这里获取指针的过程是自动的)。

查看语言规范和类型系统。

关于Golang 接口(interface) & *接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49049076/

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