go快速生成树形结构

DonWang · · 1728 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

# (tree.go)[https://gitee.com/wgdong/ginfast/blob/master/util/tree.go] ## 功能 - 通用生成函数 - 自定义主节点 - 自定义关系依赖对象 ## 测试例子 ```go package util import ( "encoding/json" "fmt" "testing" ) type Menu struct { ID uint PID uint Name string Children []Menu `json:"children,omitempty"` } func TestTree(t *testing.T) { v := []Menu{{ ID: 1, PID: 0, Name: "0-1", }, { ID: 2, PID: 1, Name: "1-2", }, { ID: 3, PID: 2, }, { ID: 4, PID: 1, Name: "1-4", }, { ID: 5, PID: 2, Name: "1-3", }, { ID: 6, PID: 0, Name: "0-6", }} r := TreeSlice(v, func(i int) bool { return v[i].PID == 1 }, func(i, j int) bool { return v[i].ID == v[j].PID }) b, _ := json.Marshal(r) fmt.Printf("%s\n", b) } ```

有疑问加站长微信联系(非本文作者)

第 1 条附言  · 
https://gitee.com/dontls/ginfast/tree/master/pkg/tree

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1728 次点击  ∙  2 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传