Maison  >  Article  >  développement back-end  >  Comment trier les tranches à l'aide de la fonction sort.Slice dans Golang

Comment trier les tranches à l'aide de la fonction sort.Slice dans Golang

王林
王林original
2023-11-18 09:10:562169parcourir

Comment trier les tranches à laide de la fonction sort.Slice dans Golang

Le tri des tranches est une fonction couramment utilisée dans Golang et peut être rapidement implémenté à l'aide de la fonction sort.Slice. Cette fonction permet de trier les tranches en passant une fonction de comparaison personnalisée. La fonction

sort.Slice est définie comme suit :

func Slice(slice interface{}, less func(i, j int) bool)

Parmi eux, le paramètre slice spécifie la tranche à trier, et le paramètre less est une fonction de comparaison utilisée pour définir les règles de comparaison des éléments de tranche.

Voici un exemple de code qui montre comment trier les tranches à l'aide de la fonction sort.Slice :

package main

import (
    "fmt"
    "sort"
)

type Person struct {
    Name string
    Age  int
}

type Persons []Person

func (p Persons) Len() int {
    return len(p)
}

func (p Persons) Less(i, j int) bool {
    return p[i].Age < p[j].Age
}

func (p Persons) Swap(i, j int) {
    p[i], p[j] = p[j], p[i]
}

func main() {
    persons := Persons{
        {"Alice", 25},
        {"Bob", 30},
        {"Charlie", 20},
        {"David", 35},
    }

    fmt.Println("Before sort:", persons)

    sort.Slice(persons, func(i, j int) bool {
        return persons[i].Age < persons[j].Age
    })

    fmt.Println("After sort:", persons)
}

Dans le code ci-dessus, nous définissons une structure Personne et un type de tranche Personnes. Le type Personnes implémente trois interfaces dans le package de tri : Len, Less et Swap, indiquant ainsi que les Personnes peuvent être triées.

Dans la fonction principale, nous définissons une instance de tranche de personnes et utilisons la fonction sort.Slice pour trier la tranche dans le code suivant. Dans ce cas, nous définissons un moyen de trier par ordre croissant selon le champ Person.Age en passant une fonction anonyme comme paramètre less.

Enfin, nous affichons les résultats triés et vous pouvez voir que le tri est terminé.

Résumé : 

La fonction tri.Slice est un raccourci pour le tri des tranches dans Golang. Nous pouvons définir différents classements en passant différentes fonctions de comparaison. Lors du passage de la fonction de comparaison dans sort.Slice, nous pouvons utiliser une fonction anonyme ou une structure qui implémente l'interface de tri.

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!

Déclaration:
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