次の親構造体と子構造体を考えます:
type Parent struct { id string children []Child } type Child struct { id string }
事前に定義された値を持つ Parent 構造体のスライスがあるとします。
parents := []Parent{ { "3", []Child{ {"2"}, {"3"}, {"1"}, }, }, { "1", []Child{ {"8"}, {"9"}, {"7"}, }, }, { "2", []Child{ {"5"}, {"6"}, {"4"}, }, }, }
並べ替え要件:
私たちの目標は、2 つの基準に基づいて親スライスを並べ替えることです:
解決策:
この並べ替えを実現するには、カスタム比較に基づいてスライスを並べ替える柔軟な方法を提供する sort.Slice 関数を利用します。機能。コードは次のとおりです:
// Sort parents by their ID
sort.Slice(parents, func(i, j int) bool { return parents[i].id この並べ替えアルゴリズムは両方の基準を効率的に処理し、親スライスが希望どおりに順序付けされるようにします。
期待される結果:
並べ替えられたスライスは次のようになります。次の構造に似ています:
[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3