Tri des structures par champs spécifiques avec simplicité dans Go
Dans Go, lorsque vous travaillez avec des structures, triez sans effort un tableau de structures par champ personnalisé les noms sont souvent souhaités. Par exemple, si vous disposez d'un tableau de planètes, chaque planète étant représentée sous la forme d'une structure avec des champs tels que "Nom" et "Axe", vous devrez peut-être les organiser en fonction de leurs valeurs "Axe".
Le La solution traditionnelle implique l'utilisation du package de tri et l'introduction d'un code passe-partout important pour gérer le tri par clés spécifiques. Cependant, avec l'introduction de Go 1.8, la tâche a été grandement simplifiée avec l'ajout de la fonction sort.Slice.
Utiliser sort.Slice pour un tri efficace
sort.Slice vous permet de trier une tranche, qui est une structure de données plus flexible qu'un tableau. Pour trier un tableau de structures, convertissez-le simplement en tranche en utilisant la syntaxe [:] :
sort.Slice(planets[:], func(i, j int) bool { return planets[i].Axis < planets[j].Axis })
Cette fonction de comparaison spécifie le tri par ordre croissant en fonction du champ "Axe".
Remarque concernant les tableaux et les tranches
Les tableaux dans Go ont une taille fixe et ne peuvent pas être étendus, contrairement à tranches. Dans la plupart des scénarios, les tranches sont préférées car elles offrent des capacités de redimensionnement dynamique. Si vous devez utiliser un tableau, assurez-vous de le convertir en tranche avant de trier à l'aide de sort.Slice. Ceci est réalisé en ajoutant [:] après la variable du tableau, comme indiqué ci-dessous :
sort.Slice(planets[:], func(i, j int) bool { return planets[i].Axis < planets[j].Axis })
Après l'opération de tri, le tableau d'origine est modifié, vous permettant de continuer à utiliser le tableau trié si nécessaire.
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!