在Go中列出接口中的接口

huangapple go评论95阅读模式
英文:

Listing interfaces in interfaces in Go

问题

我不理解container/heap包中以下代码片段。

type Interface interface {
    sort.Interface   //这一行是一个方法吗?
    Push(x interface{})
    Pop() interface{}
}
英文:

I don't understand the following code snippet in the container/heap package.

type Interface interface {
    sort.Interface   //Is this line a method?
    Push(x interface{})
    Pop() interface{}
}

答案1

得分: 7

这是一个类型声明。

heap.Interface 接口嵌入了 sort.Interface 接口。

你可以将其看作是一种继承/特化的方式:这意味着实现 heap.Interface 接口的结构体也必须实现 sort.Interface 的方法以及 PushPop 方法。

接口嵌入在《Effective Go》中有详细描述:http://golang.org/doc/effective_go.html#embedding

英文:

This is a type declaration.

The heap.Interface interface embeds the sort.Interface interface.

You can see it as a kind of inheritance/specialization : it means that the structs implementing the heap.Interface interface are defined as the ones that implement the sort.Interface methods and the Push and Pop methods.

Interface embeding is described in Effective Go : http://golang.org/doc/effective_go.html#embedding

huangapple
  • 本文由 发表于 2012年10月28日 18:59:04
  • 转载请务必保留本文链接:https://go.coder-hub.com/13108237.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定