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

Maîtriser la fonction sort.Slice dans le document en langage Go pour implémenter le tri par tranche

王林
Libérer: 2023-11-03 12:08:10
original
1026 Les gens l'ont consulté

Maîtriser la fonction sort.Slice dans le document en langage Go pour implémenter le tri par tranche

Pour maîtriser la fonction sort.Slice dans la documentation du langage Go afin d'implémenter le tri par tranche, des exemples de code spécifiques sont nécessaires

Dans le langage Go, les tranches sont une structure de données très courante utilisée pour stocker une série d'éléments du même taper. Dans les applications pratiques, nous devons souvent trier des tranches pour répondre à différents besoins. Le package de tri est fourni dans le langage Go, qui possède une fonction très utile sort.Slice(), qui peut facilement implémenter la fonction de tri par tranche. La signature de fonction de la fonction

sort.Slice est la suivante :
func Slice(slice interface{}, less func(i, j int) bool)

Où, slice est la tranche à trier, et less est la fonction utilisée pour définir les règles de tri.

Regardons un exemple spécifique ci-dessous. Supposons qu'il existe une tranche qui stocke les scores des étudiants. Nous devons trier les étudiants en fonction de leurs scores, du plus élevé au plus faible.

package main

import (
    "fmt"
    "sort"
)

type Student struct {
    ID     int
    Name   string
    Score  int
}

func main() {
    students := []Student{
        {1, "Tom", 80},
        {2, "Jerry", 90},
        {3, "Alice", 70},
        {4, "Bob", 85},
    }

    sort.Slice(students, func(i, j int) bool {
        return students[i].Score > students[j].Score
    })

    for _, student := range students {
        fmt.Printf("ID: %d, Name: %s, Score: %d
", student.ID, student.Name, student.Score)
    }
}
Copier après la connexion

Dans cet exemple, nous définissons une structure Student qui contient l'identifiant, le nom et le score de l'étudiant. Nous créons une tranche d'étudiants contenant plusieurs étudiants et les trions des scores élevés aux scores faibles.

Dans la fonction sort.Slice, nous passons les étudiants slice et une fonction anonyme comme paramètres. Cette fonction anonyme est utilisée pour définir des règles de tri, comparer en fonction des scores des élèves et renvoyer une valeur booléenne indiquant la relation de taille entre deux élèves. Si le score du premier élève est supérieur à celui du deuxième élève, renvoie vrai, sinon renvoie faux.

En appelant la fonction sort.Slice, nous pouvons trier les tranches. Dans cet exemple, le résultat trié est :

ID: 2, Name: Jerry, Score: 90
ID: 4, Name: Bob, Score: 85
ID: 1, Name: Tom, Score: 80
ID: 3, Name: Alice, Score: 70
Copier après la connexion

De cette façon, nous avons implémenté avec succès la fonction de tri des tranches de haut en bas en fonction des scores des élèves.

La fonction sort.Slice peut non seulement trier des tranches de types de base, mais peut également être utilisée pour trier des tranches de tout type. Comparez simplement en fonction de besoins spécifiques dans la fonction de comparaison.

Pour résumer, en maîtrisant la fonction sort.Slice dans le document en langage Go, on peut facilement implémenter l'opération de tri des tranches. En définissant de manière flexible des fonctions de comparaison, il est possible d'obtenir des résultats de tri pour différents besoins. Dans le développement réel, nous avons souvent besoin de trier des tranches, donc maîtriser cette fonction est une compétence très utile. J'espère que cet article pourra être utile à tout le monde, merci d'avoir lu !

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:php.cn
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!