登录
首页 >  Golang >  Go问答

Go 和嵌套接口

来源:stackoverflow

时间:2024-03-16 13:09:29 172浏览 收藏

在 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要实现接口IT的方法集必须包含I的方法集的所有方法,并且这些方法的签名必须逐字匹配,即方法的名称、输入和输出参数的数量、顺序和类型必须完全匹配。

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

另请参阅:Why does Go not have covariant result types?

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>