Maison  >  Article  >  développement back-end  >  Comment implémenter la fonction de fermeture dans Golang ?

Comment implémenter la fonction de fermeture dans Golang ?

PHPz
PHPzoriginal
2024-04-11 15:03:021137parcourir

Dans Go, une fonction de fermeture fait référence à une fonction anonyme qui peut accéder à des variables externes. Méthode d'implémentation : Lors de la création d'une fonction de fermeture, une référence à une variable externe est formée. Les applications pratiques incluent la sommation de listes cumulatives de nombres. Avantages : améliorez la maintenabilité et la réutilisabilité du code, encapsulez l'état et créez de puissantes fonctions de rappel.

Comment implémenter la fonction de fermeture dans Golang ?

Explication détaillée de la fonction de fermeture en langage Go

Qu'est-ce que la fonction de fermeture ?

Dans Go, une fonction de fermeture fait référence à une fonction anonyme qui peut accéder à des variables en dehors de sa portée définie. Lorsqu'une fonction de fermeture capture des variables externes, elle forme une référence, donc même si la fonction de fermeture est renvoyée ou transmise à d'autres fonctions, ces variables externes sont toujours disponibles.

Comment implémenter la fonction de fermeture ?

Dans Go, les fonctions de fermeture peuvent être créées par :

func main() {
  // 定义一个外部变量
  x := 10

  // 创建一个闭包函数
  fn := func() {
    fmt.Println(x) // 访问外部变量
  }

  // 执行闭包函数
  fn() // 输出:10
}

Dans cet exemple, fn 闭包函数可以访问外部变量 x,即使 fn 函数在 main est exécuté en dehors de la fonction.

Cas pratique

Supposons que nous ayons une fonction qui doit calculer la somme d'une liste de nombres. Nous pouvons utiliser des fonctions de fermeture pour accumuler des valeurs de somme :

func main() {
  nums := []int{1, 2, 3, 4, 5}

  // 创建一个闭包函数来计算和值
  sum := func() int {
    total := 0
    for _, num := range nums {
      total += num
    }
    return total
  }

  // 调用闭包函数并打印和值
  fmt.Println(sum()) // 输出:15
}

Avantages

Les fonctions de fermeture présentent les avantages suivants :

  • Permettent aux fonctions d'accéder à des variables en dehors de leur portée de définition, améliorant ainsi la maintenabilité et la réutilisation du code.
  • Aide à encapsuler l'état afin qu'il ne soit pas facilement modifié par un code externe.
  • Possibilité de créer de puissantes fonctions de rappel qui peuvent être appelées lorsque des événements se produisent.

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