Réponse : Les fonctions et fermetures anonymes sont des outils puissants dans le langage Go pour écrire du code réutilisable, modulaire et plus lisible. Fonction anonyme : fonction qui ne contient pas de nom, utilisée pour des tâches ponctuelles ou des fonctions de rappel. Fermeture : une fonction enfermée dans une fonction qui peut accéder à des variables externes et encapsuler un état ou des données. Cas pratique : Utiliser la fonction anonyme pour filtrer la liste et extraire les nombres pairs. Utilisez des fermetures pour créer des compteurs configurables et isoler l'état de comptage.
Les fonctions et fermetures anonymes sont des outils puissants dans le langage Go qui vous aident à écrire du code plus réutilisable, modulaire et lisible.
Les fonctions anonymes sont des fonctions qui peuvent être déclarées directement mais sans nom, par exemple :
func() { fmt.Println("Hello, world!") }
Les fonctions anonymes sont généralement utilisées pour des tâches ponctuelles ou transmises comme fonctions de rappel à d'autres fonctions.
Une fermeture est une fonction qui est enfermée dans une fonction et qui a accès aux variables externes lorsqu'elle a été définie. Cela vous permet de créer des fonctions qui encapsulent un état ou des données, par exemple :
func createCounter() func() int { count := 0 return func() int { count++ return count } }
Cas 1 : Filtrer une liste à l'aide d'une fonction anonyme
numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} evenNumbers := filter(numbers, func(n int) bool { return n%2 == 0 }) fmt.Println(evenNumbers) // [2 4 6 8 10]
Cas 2 : Utiliser une fermeture pour créer un compteur configurable
counter := createCounter() fmt.Println(counter()) // 1 fmt.Println(counter()) // 2 // 创建一个具有不同初始计数的计数器 counter2 := createCounter() counter2() counter2() // 1 (因为这是它自己的隔离计数器)
Les fonctions et fermetures anonymes améliorent considérablement la flexibilité et la réutilisabilité du code Go. En les comprenant et en les utilisant, vous pouvez écrire des programmes plus efficaces et plus faciles à maintenir.
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!