Golang笔记

Golang 实现/打印菜单树

树结构的菜单

package main

import "fmt"

type Org struct {
	OrgID    string
	OrgName  string
	parentID string
}

func printTree(tbl []Org, parent string, depth int) {
	for _, r := range tbl {
		if r.parentID == parent {
			for i := 0; i < depth; i++ {
				fmt.Print("--")
			}
			fmt.Print(r.OrgName, "\n\n")
			printTree(tbl, r.OrgID, depth+1)
		}
	}
}

func main() {
	data := []Org{
		{"A001", "Dept", "0 -----th top"},
		{"A002", "subDept1", "A001"},
		{"A003", "sub_subDept", "A002"},
		{"A006", "gran_subDept", "A003"},
		{"A004", "subDept2", "A001"},
	}

	printTree(data, "0 -----th top", 0)
}

输出:

Dept

--subDept1

----sub_subDept

------gran_subDept

--subDept2

摘自 https://play.golang.org/p/27CQAhI8gf 14

本文网址: https://golangnote.com/topic/253.html (转载注明出处)
关于GolangNote:记录在工作中使用golang 遇到、面临的相关问题及解决方法。如果你在这里获得一些知识或信息,解决你的编程问题,请考虑捐赠给不幸的人或者你喜欢的慈善机构,除捐赠外,种植树木、志愿服务或减少排碳的行为也很有益处。如果你有任何问题可以在下面 留言
Be the first to comment!
Captcha image