我有三个文件:
node.go:
next: 4.94066e-324
min: 2.22507e-308
next<min: 1
next>0: 1
anode.go:
type Node interface {
AMethod(arg ArgType) bool
BMethod() bool
}
bnode.go:
type aNode struct {}
func AMethod(aNode ANode, arg ArgType) bool {
return true
}
func BMethod(aNode ANode) bool {
return true
}
但是我收到了错误:
type bNode struct {}
func AMethod(bNode BNode, arg ArgType) bool {
return true
}
func BMethod(bNode BNode) bool {
return true
}
如何在此有效实施界面?
答案 0 :(得分:3)
声明一个接受某种类型的函数不会使该函数成为类型method set的一部分(意味着它不能帮助该类型满足特定的接口)。
相反,您需要使用declare a function as a method的正确语法,如下所示:
type BNode struct {}
func (ANode) AMethod(arg ArgType) bool {
return true
}
func (ANode) BMethod() bool {
return true
}
type BNode struct {}
func (BNode) AMethod(arg ArgType) bool {
return true
}
func (BNode) BMethod() bool {
return true
}