Maison > développement back-end > Golang > le corps du texte

Tri du tableau de structure personnalisé dans GoLang

PHPz
Libérer: 2024-02-08 23:09:26
avant
643 Les gens l'ont consulté
<p><img src="https://img.php.cn/upload/article/000/000/164/170740497113136.jpg" alt="在 GoLang 中对自定义结构体数组进行排序"></p> <p>Dans GoLang, le tri des tableaux de structure personnalisés est une exigence courante. En comparant et en échangeant des éléments du tableau, nous pouvons trier le tableau de structure selon des règles spécifiques. Pendant le processus de tri, nous pouvons utiliser différents algorithmes de tri, tels que le tri à bulles, le tri par insertion ou le tri rapide, etc. Quel que soit l'algorithme utilisé, nous pouvons comparer en fonction d'un certain champ de la structure pour réaliser l'opération de tri. Dans cet article, nous présenterons comment trier un tableau de structure personnalisé dans GoLang, ainsi que quelques conseils et considérations de tri courants. </p> <h2 class="daan">Contenu de la question</h2> <p>Comment utiliser Golang pour trier un tableau de structure personnalisé. </p> <p>Mon code est : </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">Copier après la connexion</div></div> <p>Cela imprime la sortie sous la forme </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">{john 3} {bill 7} {sam 4}</pre><div class="contentsignin">Copier après la connexion</div></div> <p>Je souhaite trier les objets <strong>response</strong> par valeur <strong>ticketvolume</strong> par ordre décroissant. </p> <p>Après le tri, l'objet de réponse devrait ressembler à ceci : </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">{Bill 7} {Sam 4} {John 3}</pre><div class="contentsignin">Copier après la connexion</div></div></p><h2 class="daan">Solution de contournement</h2><p>Vous pouvez utiliser <a href="https://www.php.cn/link/ad0efad9dd0abaec4b8f9aaa489ec2f1" rel="nofollow noreferrer"><code>sort.slice</code></a> pour y parvenir. Cela nécessite vos fonctions de découpage et de tri. La fonction de tri elle-même prend deux indices et renvoie vrai si l'élément de gauche <strong> est inférieur à l'élément de </strong> de droite. </p> <p>Vous pouvez donc trier selon vos propres critères personnalisés. </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">package main import ( "fmt" "sort" ) 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}) sort.Slice(response.LevelDistribution, func(i, j int) bool { a := response.LevelDistribution[i] b := response.LevelDistribution[j] return a.TicketVolume > b.TicketVolume }) for _, val := range response.LevelDistribution { fmt.Println(*val) } }</pre><div class="contentsignin">Copier après la connexion</div></div> <p>Utilisez <code>></code> 对切片进行降序排序,对于升序,您可以使用 <code><</code> dans les fonctions de comparaison. </p>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!