go语言学习笔记 — 进阶 — 接口(2.3):接口无法实现的例子
Posted Locutus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 进阶 — 接口(2.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()方法类型与接口方法中的不一致。
以上是关于go语言学习笔记 — 进阶 — 接口(2.3):接口无法实现的例子的主要内容,如果未能解决你的问题,请参考以下文章
go语言学习笔记 — 进阶 — 接口:接口的嵌套组合 —— 把多个接口放到一个接口内
go语言学习笔记 — 进阶 — 接口:使用类型分支,批量判断空接口中变量的类型
go语言学习笔记 — 进阶 — 接口:空接口类型interface{} —— 能保存所有值