【发布时间】:2016-02-16 09:56:04
【问题描述】:
例如在子结构中嵌入父结构后:
type ParentNode struct {
}
type ChildNode struct {
ParentNode
Ident string
}
func ParentType() ParentNode {
child := ChildNode{Ident : "node"}
fmt.Println(child)
return child.ParentNode
}
func main() {
x := ParentType()
fmt.Println(x.Ident)
}
这是否会打印出“节点”并返回包含在父结构中的子结构以及所有信息,这样我们就可以在拥有实际子结构的同时操纵明显的父结构?这样做的想法类似于 Java,您可以返回一个明显类型的 List,但返回一个实际类型的 LinkedList。
如果不是,实现此功能的最佳方法是什么?本质上,我想将 Child 结构向上转换为父结构,但将其作为子结构进行操作。有没有办法使用接口解决这个问题?
如何消除fmt.Println(x.Ident) 行的错误“x.Ident undefined (type ParentNode has no field or method Ident)”
【问题讨论】:
标签: inheritance struct go subclass