为了账号安全,请及时绑定邮箱和手机立即绑定

接口和实现

接口和实现

Go
哆啦的时光机 2022-05-10 16:24:03
在以下代码片段中 -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}AbcImplstruct 是Abc接口的实现,但是像这样更改最后一个函数 -func (abcImpl *AbcImpl) Do(input InputImpl){    // do something}现在AbcImpl不再实现Abc了,虽然InputImpl正在实现Input接口!我是否遗漏了什么,或者必须具有与接口完全相同的签名(不是事件 Impls)才能成为合法实现?
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

是的,您必须遵循您指定的方法签名。如果您不遵循签名,则不会称为“执行”。

示例:接口示例

从围棋之旅:There is no explicit declaration of intent, no "implements" keyword.


查看完整回答
反对 回复 2022-05-10
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

在 Go 中实现接口时,必须使用完全相同的签名。否则你无法实现它。



查看完整回答
反对 回复 2022-05-10
  • 2 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信