ホームページ >バックエンド開発 >Golang >GoLang でのカスタム構造体配列の並べ替え

GoLang でのカスタム構造体配列の並べ替え

PHPz
PHPz転載
2024-02-08 23:09:26719ブラウズ
<p><img src="https://img.php.cn/upload/article/000/000/164/170740497113136.jpg" alt="在 GoLang 中对自定义结构体数组进行排序"></p> <p>GoLang では、カスタム構造体配列の並べ替えは一般的な要件です。配列内の要素を比較および交換することで、特定のルールに従って構造体配列を並べ替えることができます。ソートプロセス中に、バブルソート、挿入ソート、クイックソートなどのさまざまなソートアルゴリズムを使用できます。どのアルゴリズムが使用されるかに関係なく、構造の特定のフィールドに基づいて比較して、並べ替え操作を実行できます。この記事では、GoLang でカスタム構造体配列を並べ替える方法と、一般的な並べ替えのヒントと考慮事項を紹介します。 </p> <h2 class="daan">質問内容</h2> <p>golang を使用してカスタム構造体配列を並べ替える方法。 </p> <p>私のコードは次のとおりです: </p> リーリー <p>これにより、出力が </p> として出力されます。 リーリー <p><strong>response</strong> オブジェクトを <strong>ticketvolume</strong> 値の降順に並べ替えたいと考えています。 </p> <p>並べ替えると、応答オブジェクトは次のようになります: </p> <pre class="brush:php;toolbar:false;">package main import "fmt" type ticketdistribution struct { label string ticketvolume int64 } type ticketdistributionresponse struct { leveldistribution []*ticketdistribution } func main() { var response ticketdistributionresponse response.leveldistribution = append(response.leveldistribution, &ticketdistribution{label: "john", ticketvolume: 3}) response.leveldistribution = append(response.leveldistribution, &ticketdistribution{label: "bill", ticketvolume: 7}) response.leveldistribution = append(response.leveldistribution, &ticketdistribution{label: "sam", ticketvolume: 4}) for _, val := range response.leveldistribution { fmt.println(*val) } }</pre><h2 class="daan">回避策</h2> <p>これを実現するには、<a href="https://www.php.cn/link/ad0efad9dd0abaec4b8f9aaa489ec2f1" rel="nofollow noreferrer"><code>sort.slice</code></a> を使用します。スライス機能と並べ替え機能が必要です。 sort 関数自体は 2 つのインデックスを受け取り、左側の項目 <strong> が右側の項目 </strong> より小さい場合に true を返します。 </p> <p>この方法で、独自のカスタム基準で並べ替えることができます。 </p> リーリー <p>比較関数で <code>></code> を使用してスライスを降順に並べ替えます。昇順にするには <code><</code> を使用します。 </p>

以上がGoLang でのカスタム構造体配列の並べ替えの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。