go语言学习笔记 — 接口 — 实现接口的条件(3):接口无法实现的例子

当(结构体)类型无法实现接口时,编译器会报错。

  • 接口方法名与实现接口的结构体方法名不一致导致的报错
type DataWriter interface {
    WriteData(data interface{}) error 
}


type file struct{}
func (d *file) WriteDatax(data interface{}) error {
    ...
}

上述(结构体)类型方法名与接口方法名不一致,程序报错:

cannot use f (type *file) as type DataWriter in assignment:
        *file does not implement DataWriter (missing WriteData method)

WriteDataX方法名本身是合法的,当尝试把*file类型赋值给DataWriter接口时,编译器需要检查*file是否实现了DataWriter接口,显然编译器在*file中没有找到DataWriter接口需要的WriteData方法。


  • 接口方法与实现接口的结构体方法参数类型名不一致导致的错误
type DataWriter interface {
    WriteData(data interface{}) error 
}


type file struct{}
func (d *file) WriteData(data int) error {
    ...
}

这次未实现DataWriter接口的原因是(结构体)类型的WriteData()方法类型与接口方法中的不一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值