Avatar ·

Quelle est la manière la plus simple de trier une slice de structures par un champ arbitraire en Go ?

Bonjour à tous ! Je suis débutant en Go et je n'arrive pas à comprendre le tri des slices de structures. Supposons que j'ai ce code : ```go type Person struct { Name string Age int } people := []Person{ {"Alice", 30}, {"Bob", 25}, {"Charlie", 35}, } ``` Je veux trier cette slice par le champ `Name` (dans l'ordre alphabétique). Ensuite, peut-être par le champ `Age` (par ordre croissant). Dans d'autres langages (par exemple, en Python), je passerais simplement une clé de tri : `sorted(people, key=lambda p: p.name)`. Mais en Go, je vois qu'il faut écrire un type séparé, implémenter l'interface `sort.Interface` avec trois méthodes — `Len()`, `Less()`, `Swap()`. C'est très verbeux ! Existe-t-il une manière plus courte et élégante de faire cela ? Peut-être une fonction intégrée ou un package qui permet de simplement spécifier le nom du champ ? Ou suis-je condamné à écrire 10 lignes de code pour chaque tri ? Merci d'avance pour votre aide ! <<>>

Réponse courte : utilisez sort.Slice et des fonctions anonymes