分類(lèi)結(jié)構(gòu)
type category struct {
id int
pid int
name string
children []category
}
分類(lèi)列表如下
var list []category = []category{
{
id: 1,
pid: 0,
name: "首頁(yè)",
},
{
id: 2,
pid: 0,
name: "新聞",
},
{
id: 3,
pid: 2,
name:"軍事新聞",
},
{
id: 4,
pid: 3,
name:"國(guó)內(nèi)軍事速遞",
},
{
id: 5,
pid: 3,
name:"歐美軍事速遞",
},
{
id: 6,
pid: 2,
name:"娛樂(lè)新聞",
},
{
id: 7,
pid: 0,
name:"游戲",
},
{
id: 8,
pid: 6,
name:"綜藝大觀",
},
{
id: 9,
pid: 7,
name:"手游",
},
}
遞歸實(shí)現(xiàn)
func tree(list []category,pid int) []category {
var treeList []category
for _, r := range list {
if r.pid == pid {
r.children = tree(list,r.id)
treeList = append(treeList,r)
}
}
return treeList
}
//調(diào)用
tree(list,0)