看go语言圣经的时候看到第七章sort.go有这样一段代码
``` golang?linenums
type Interface interface {
Len() int
Less(i, j int) bool
Swap(i, j int)
}
type reverse struct {
Interface
}
func (r reverse) Less(i, j int) bool {
return r.Interface.Less(j, i)
}
func Reverse(data Interface) Interface {
return &reverse{data}
}
```
求问,reverse类嵌入了一个接口,这是咋回事呢?有没有接口被嵌入到结构体中相关的教程呢? 主要是不明白这种嵌入代表什么?reverse变成了什么类型?
StructType = "struct" "{" { FieldDecl ";" } "}" .
FieldDecl = (IdentifierList Type | EmbeddedField) [ Tag ] .
EmbeddedField = [ "*" ] TypeName .
Tag = string_lit .
EmbeddedField 可以是任意类型,struct类型也好,interface类型也好,只要能被赋值
对于上面reverse类型的变量,里面的Interface匿名成员被赋值后reverse变量才能用,这样Interface匿名成员的方法集就可以被reverse的变量使用了
#1