私は、各ノードがIDと親ref/id paramsを持つべき木構造をコーディングしようとしています。ゴラン木構造抽象化
ノード構造体を拡張すると、カスタムパラメータ(title、icon、color ...など)を追加できるはずです。それはあなたがここに以下のコードかを見つけることができます...後でのMgOと
をインライン化して挿入する必要があります。https://play.golang.org/p/bbvs2iM3ri
私はnodeExtension構造体にメソッドを追加することを回避しようとすると、ノード構造体を通してそれを共有しています。 CreateNodeメソッドはラッピング構造体ではなくノードデータのみを取得しています。
カスタムパラメータ(ここでは説明)を失うことなくこのアルゴリズムを実装する方法はありますか?
おかげ
package main
import (
"fmt"
)
type item struct {
ID string
}
type node struct {
item `bson:,inline`
Parent string
}
func (t *node) CreateNode() {
fmt.Printf("Node: %+v\n", t)
}
type nodeExtension struct {
node `bson:,inline`
Description string
}
func main() {
i := &nodeExtension{
node: node{
item: item{
ID: "1",
},
Parent: "",
},
Description: "Root node",
}
i.CreateNode()
i = &nodeExtension{
node: node{
item: item{
ID: "2",
},
Parent: "1",
},
Description: "Another node",
}
i.CreateNode()
}
// output:
// Node: &{item:{ID:1} Parent:}
// Node: &{item:{ID:2} Parent:1}
// both without description :/