我正在尝试编写一个树形结构,其中每个节点应具有一个id和父ref / id参数。

通过扩展节点结构,您应该能够添加一些自定义参数(例如标题,图标,颜色...)。 应该内联并稍后插入mgo ...

您可以在下面或此处找到代码:https://play.golang.org/p/bbvs2iM3ri

我试图避免将方法添加到nodeExtension结构中,并通过node结构共享它。 但是,CreateNode方法仅获取节点数据,而不获取包装结构。

有什么想法如何在不丢失自定义参数的情况下实现这种算法(在这种情况下为描述)?

谢谢

您的CreateNode()函数在类型node上运行,该类型没有Description字段。
将签名更改为:

func (t *nodeExtension) CreateNode()

在这种情况下将按照您希望的方式运行:它将打印出整个nodeExtension结构:
https://play.golang.org/p/nLxblNySB9

我不能完全确定您要在这里完成什么,但是也许可以使用类型为node的接口,该接口实现了String()方法,然后像simpleNodeextendedNode 看着?