type MenuItem struct {
Id int32
Type string
SortOrder int8
CategoryId int32
Children []*MenuItem
}
如果你有這個結構,并且你有一個[]MenuItem
. 我想只檢索帶有CategoryId
值的切片。這看起來像一個遞回用例,Children
但基于切片的附加函式的作業原理,它看起來有點棘手。有任何想法嗎?你會怎么做?
最終結果應該是一片[]int32
: [11, 1900, 12, 1300,...., 2090]
uj5u.com熱心網友回復:
讓我們append
為您完成艱苦的作業,處理記憶體擴展,并在每個遞回步驟中回傳其結果:
func traverse(m *MenuItem) (r []int32) {
if m == nil {
return
}
r = append(r, m.CategoryId)
for _, c := range m.Children {
r = append(r, traverse(c)...)
}
return
}
https://go.dev/play/p/8d0cyPMV0r6
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507861.html
上一篇:拋硬幣的總可能結果
下一篇:通過批處理檔案安裝包