Maison  >  Article  >  développement back-end  >  Compilation d'une plateforme de discussion et de communication communautaire pour les fonctions et fermetures anonymes de Golang

Compilation d'une plateforme de discussion et de communication communautaire pour les fonctions et fermetures anonymes de Golang

WBOY
WBOYoriginal
2024-05-05 10:33:02689parcourir

Question : Que sont les fonctions anonymes et les fermetures en langage Go ? Réponse : Fonction anonyme : Une fonction qui ne nécessite pas de déclaration explicite de nom. Fermeture : une fonction définie dans une autre fonction peut référencer des variables dans le cadre de sa fonction externe et existe toujours lorsque la fermeture est appelée.

Compilation dune plateforme de discussion et de communication communautaire pour les fonctions et fermetures anonymes de Golang

Fonctions anonymes et fermetures en langage Go

Fonctions anonymes

Les fonctions anonymes sont des fonctions qui ne nécessitent pas de déclaration explicite d'un nom. Utilisez le mot-clé func, suivi du corps de la fonction, comme ceci :

func() {
    fmt.Println("这是一个匿名函数")
}

Fermetures

Une fermeture est une fonction définie à l'intérieur d'une autre fonction qui peut référencer des variables dans sa portée de fonction externe qui sont appelées dans la fermeture qui existe toujours. Cela permet à la fermeture d'accéder aux données de la portée externe après l'exécution.

func outer() func() {
    x := 10
    return func() {
        fmt.Println("x 为", x)
    }
}

Cas pratique

Fonctions anonymes comme rappels

Les fonctions anonymes sont généralement utilisées comme rappels à exécuter lorsqu'une opération asynchrone est terminée. Par exemple :

func main() {
    // 使用匿名函数作为回调
    httpClient.Get("https://golang.org", func(resp *http.Response, err error) {
        if err != nil {
            fmt.Println("请求失败")
            return
        }
        defer resp.Body.Close()
        io.Copy(os.Stdout, resp.Body)
    })
}

Les fermetures sont utilisées pour l'encapsulation des données

Les fermetures peuvent être utilisées pour encapsuler des données et des fonctions, permettant l'accès et la modification de ces données sans avoir besoin d'autres fonctions externes. Par exemple :

func main() {
    // 使用闭包封装共享状态
    counter := func() int {
        var i int
        return func() int {
            i++
            return i
        }
    }()

    fmt.Println(counter())    // 1
    fmt.Println(counter())    // 2
    fmt.Println(counter())    // 3
}

Conclusion :

Les fonctions et fermetures anonymes fournissent des outils puissants dans le langage Go pour écrire du code flexible et maintenable. En comprenant leur objectif et leur fonctionnement, vous pouvez tirer pleinement parti de leurs capacités.

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