Maison >développement back-end >Golang >Comment capturer des variables à l'aide de la fermeture de la fonction Golang

Comment capturer des variables à l'aide de la fermeture de la fonction Golang

PHPz
PHPzoriginal
2024-04-23 11:42:01605parcourir

Comment capturer des variables à l'aide des fermetures de fonction Go ? Définissez un paramètre de fonction contenant les variables à capturer. Dans le corps de la fonction, utilisez les variables capturées. Exemple : Counter Closure Cache Closure Les fermetures sont utilisées dans Go pour capturer des variables et créer du code flexible et réutilisable.

Comment capturer des variables à laide de la fermeture de la fonction Golang

Comment capturer des variables à l'aide des fermetures de fonction Go

Une fermeture est une fonction qui contient des variables libres définies en dehors de la définition de la fonction mais accessibles dans la fonction. Dans Go, les fermetures peuvent être créées en suivant ces étapes :

  1. Définissez une fonction dont les arguments contiennent les variables à capturer.
  2. Dans le corps de la fonction, utilisez les variables capturées.

Exemple de code :

package main

import "fmt"

func main() {
    x := 10
    f := func() {
        // x 是一个自由变量,可以在 f 内访问
        fmt.Println(x)
    }

    // 运行闭包
    f()
}

Dans l'exemple ci-dessus, f 函数是一个闭包,它捕获了变量 x。当 f 被调用时,它打印 x 的值,即 10.

Autres exemples :

  • Fermeture du compteur : Créez un compteur de boucle qui continue de compter même après le retour de la fonction de fermeture.

    func counter(start int) func() int {
      x := start
      return func() int {
          x++
          return x
      }
    }
  • Cache Closure : Créez des fonctions dont les résultats sont mis en cache pour améliorer les performances.

    func cachingCalc(expensiveComputation func(int) int) func(int) int {
      cache := make(map[int]int)
      return func(x int) int {
          if v, ok := cache[x]; ok {
              return v
          }
          v = expensiveComputation(x)
          cache[x] = v
          return v
      }
    }

Les fermetures sont un outil puissant dans Go pour capturer des variables et créer du code flexible et réutilisable.

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