go sort.Slice 排序后依然乱序

在一个二级深度的切片,循环一个内部切片的切片属性

sort.Slice(cg.Children, func(i, j int) bool {
return cg.Children[i].ID < cg.Children[j].ID
})

这些会有问题,需要先把cg.Children赋值给变量,再赋值回来
children := cg.Children
sort.Slice(children, func(i, j int) bool {
return children[i].ID < children[j].ID
})
cg.Children = children

应该是因为cg.Children压入新元素之后,索引有变化
posted @ 2024-05-14 10:38  叨叨的蜗牛  阅读(19)  评论(0)    收藏  举报