就说我有
// main.go
type Speaker interface {
Speak()
}
type Person struct {}
func (p *Person) Speak() {
panic("test")
}
在代码的其他地方给出一个人,有没有办法告诉他他实现了什么接口?这里很明显,Person实现了Speaker,但如果另一种类型
type Ghost interface {
Speak()
}
存在于另一个包裹中?
对于上下文,我正在查看代码库,并且很难决定是否可以删除接收器方法,因为很难判断该方法是否存在是为了满足接口要求,还是只是为了增加功能.在自包含的代码库中,我可以删除它并查看是否出现编译器错误,但在公共库中不能这样做.