【发布时间】:2015-10-23 13:15:46
【问题描述】:
由于 Go 非常重视接口,我想知道如何明确声明一个结构正在实现接口,以便在缺少某些方法的情况下进行清晰和错误检查?到目前为止,我已经看到了两种方法,我想知道哪种方法是正确的并且符合 Go 规范。
方法 1 - 匿名字段
type Foo interface{
Foo()
}
type Bar struct {
Foo
}
func (b *Bar)Foo() {
}
方法 2 - 显式转换
type Foo interface{
Foo()
}
type Bar struct {
}
func (b *Bar)Foo() {
}
var _ Foo = (*Bar)(nil)
这些方法是正确的,还是有其他方法可以做这样的事情?
【问题讨论】:
标签: inheritance go interface standards