Maison  >  Article  >  développement back-end  >  Exemples de code et analyse des meilleures pratiques des fonctions et fermetures anonymes Golang

Exemples de code et analyse des meilleures pratiques des fonctions et fermetures anonymes Golang

王林
王林original
2024-05-05 08:18:02406parcourir

Fonctions anonymes : les fonctions anonymes sont des fonctions sans nom et sont utilisées pour créer des fonctions ou des rappels ponctuels. Fermeture : une fermeture contient des fonctions anonymes et des références de variables externes, qui peuvent accéder et modifier des variables externes.

Exemples de code et analyse des meilleures pratiques des fonctions et fermetures anonymes Golang

Fonctions anonymes et fermetures en langage Go

Que sont les fonctions anonymes ?

Les fonctions anonymes sont des fonctions sans nom, généralement utilisées pour créer des fonctions ou des rappels à usage unique.

Déclarer une syntaxe de fonction anonyme :

func(参数列表)(返回值列表) { 函数体 }

Exemple :

Mettre au carré une liste de nombres :

numbers := []int{1, 2, 3, 4, 5}
result := map(func(n int) int { return n * n }, numbers)

Qu'est-ce qu'une fermeture ?

Une fermeture est une valeur de fonction qui contient une fonction anonyme et une référence de variable externe. Cela signifie que la fermeture peut accéder et modifier des variables externes.

Créer une syntaxe de fermeture :

func(参数列表)(返回值列表) {
    // 内部定义的变量
    变量名 := 值
    return func(闭包参数列表)(闭包返回值列表) {
        // 可以访问和修改内部变量
    }
}

Exemple :

Créer une fonction qui renvoie un mot répété un nombre spécifié de fois par page :

package main

import "fmt"

func makeRepeated(s string, n int) func() string {
    i := 0
    return func() string {
        i++
        return fmt.Sprintf("%s%d", s, i)
    }
}

func main() {
    repeat := makeRepeated("a", 5)
    fmt.Println(repeat())
    fmt.Println(repeat())
}

Sortie :

a1
a2

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