gpt4 book ai didi

go - 接口(interface)与实现

转载 作者:行者123 更新时间:2023-12-03 23:29:34 24 4
gpt4 key购买 nike

在下面的代码片段中-

type Input interface {
Name() string
}

type Abc interface {
Do(Input)
}

type InputImpl struct {
}

func (InputImpl) Name() string {
return "sample-impl"
}

type AbcImpl struct {
}

func (abcImpl *AbcImpl) Do(input Input){
// do something
}

AbcImpl 结构是 Abc 接口(interface)的一个实现,但是像这样改变最后一个函数 -

func (abcImpl *AbcImpl) Do(input InputImpl){
// do something
}

现在 AbcImpl 不再实现 Abc,尽管 InputImpl 正在实现 Input 接口(interface)!

我是否遗漏了什么,或者必须具有完全相同的签名(不是事件实现)作为合法实现的接口(interface)?

最佳答案

是的,您必须遵循您指定的方法签名。不按署名,就不叫“落实”。

一个例子:interface example

来自 Go 之旅:没有明确的意图声明,没有“implements”关键字。


关于go - 接口(interface)与实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60003094/

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