Maison > développement back-end > Golang > Modèles de conception courants pour les fonctions Golang

Modèles de conception courants pour les fonctions Golang

PHPz
Libérer: 2024-04-26 17:51:01
original
544 Les gens l'ont consulté

Le modèle de conception des fonctions du langage Go est utilisé pour améliorer la lisibilité, la maintenabilité et la réutilisabilité du code, notamment : Paramètres d'entrée/sortie : permet aux fonctions de modifier la valeur de l'appelant via des paramètres. Renvoyez plusieurs valeurs : simplifiez le code et évitez d’utiliser des variables globales. Fonctionne comme paramètres : créez un code flexible et personnalisable.

Modèles de conception courants pour les fonctions Golang

Modèles de conception courants dans les fonctions du langage Go

Cet article présente les modèles de conception de fonctions courants dans le langage Go, qui peuvent améliorer la lisibilité, la maintenabilité et la réutilisabilité du code.

Paramètres d'entrée/sortie

Les paramètres d'entrée/sortie permettent à une fonction de modifier la valeur de l'appelant via des paramètres. Par exemple, on peut intervertir l'ordre de deux valeurs dans une fonction :

func swap(a, b *int) {
    *a, *b = *b, *a
}
Copier après la connexion

Exemple pratique : Fonction auxiliaire pour le tri :

func sort(arr []int) {
    for i := 0; i < len(arr); i++ {
        for j := i + 1; j < len(arr); j++ {
            if arr[i] > arr[j] {
                swap(&arr[i], &arr[j])
            }
        }
    }
}
Copier après la connexion

Renvoyer plusieurs valeurs

Le langage Go permet aux fonctions de renvoyer plusieurs valeurs. Cela simplifie le code et évite l'utilisation de variables globales. Par exemple, on peut utiliser la fonction pour obtenir les valeurs minimales et maximales d'un tableau :

func minMax(arr []int) (int, int) {
    min := arr[0]
    max := arr[0]
    for _, v := range arr {
        if v < min {
            min = v
        }
        if v > max {
            max = v
        }
    }
    return min, max
}
Copier après la connexion

Exemple pratique : Fonction de calcul de statistiques :

func stats(arr []int) (float64, float64) {
    sum := 0
    for _, v := range arr {
        sum += v
    }
    average := float64(sum) / float64(len(arr))
    return average, float64(minMax(arr)[0] + minMax(arr)[1]) / 2
}
Copier après la connexion

Fonction en paramètre

Les fonctions Go peuvent être passées en paramètres à d'autres fonctions. Cela nous permet de créer un code flexible et personnalisable. Par exemple, on peut utiliser une fonction comme fonction de comparaison :

type Person struct {
    Name string
    Age  int
}

func compareByName(a, b Person) int {
    return strings.Compare(a.Name, b.Name)
}

func sortByName(people []Person) {
    sort.Slice(people, func(i, j int) bool { return compareByName(people[i], people[j]) < 0 })
}
Copier après la connexion

Un exemple pratique : Fonction de tri universelle pour découper une structure en fonction de différents champs :

func sortBy(slice interface{}, less func(i, j interface{}) bool) {
    sort.Slice(slice, func(i, j int) bool { return less(slice[i], slice[j]) })
}
Copier après la connexion

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