<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>
<div class="code" style="position:relative; padding:0px; margin:0px;"><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><div class="contentsignin">ログイン後にコピー</div></div><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 サイトの他の関連記事を参照してください。