下面的代码是如何工作的?我的理解是 obj1 嵌入了 obj2,因此提升了 printTest,这样我们就可以调用 obj1.printTest() 而不是需要使用 obj1.obj2.printTest() 来调用它。
obj1Selector 会发生什么(我不确定 obj2 前面的字符串叫什么)?obj1Selector 是否嵌入了 obj2?有人告诉我 obj1Selector 没有嵌入 obj2 而是实现了一个名为 selector 的字段,它的类型为 obj2,但这意味着什么 - 为什么不嵌入?为什么我不能调用 oSelector.printTest()?
type obj1 struct {
obj2
}
type obj1Selector struct {
selector obj2
}
type obj2 struct {
}
func (o obj2) printTest() {
fmt.Println("obj2")
}
func main() {
o := obj1{}
o.printTest()
oSelector := obj1Selector{}
oSelector.selector.printTest()
//oSelector.printTest() //Doesn't work
郎朗坤
相关分类