去嵌套接口

  • 本文关键字:接口 嵌套 go
  • 更新时间 :
  • 英文 :


希望有一个基于另一个接口的属性的接口。这可能吗?

的例子:

type interface cheese {
GetId() string
}
type interface cheeses {
GetCheeses() []cheese
}
type CheeseStruct struct {
GetId() string
}
type BowlOfCheeses struct {
GetCheeses() []*CheeseStruct
}
func doSomething(thing cheeses) {
}
bowlOfCheeses := BowlOfCheeses{
[]*CheeseStruct{
&CheeseStruct{}
}
}
doSomething(bowlOfCheeses) # the match doesn't seem to be recognized

对于类型T实现接口I,T的方法集必须包含I的方法集的所有方法,并且这些方法的签名必须完全匹配,即方法名、输入&输出参数的数量、顺序和类型必须完全匹配。

GetCheeses() []cheese!=GetCheeses() []*CheeseStruct

参见:为什么Go没有协变结果类型?

相关内容

  • 没有找到相关文章

最新更新