我在Go中遇到了这段代码:
type Mytype struct {
Interfacename
var1 ClientInterface1
var2 ClientInterface2
id int
}
第一个字段是什么意思?
答案 0 :(得分:2)
主要是,这就是在go中实现某种继承(通过组合而不是继承)。看看这个:https://golang.org/doc/effective_go.html#embedding
这将授予Outer类型(MyType
)访问此内部类型的Receiver方法(指定的struct {},因为这是一个接口)。
来自Go Effective:
嵌入与子类化不同的重要方法。 当我们嵌入一个类型时,那种类型的方法成为了方法 外部类型,但是当它们被调用时,方法的接收者是 内在的类型,而不是外在的类型
感谢 @Flimzy 和 @ md2perpe
,这定义了一个匿名字段,其变量名称与其类型名称相同。