Maison >développement back-end >Golang >Conseils pour passer des fonctions en tant que paramètres dans Golang
Le passage des fonctions aux fonctions Go permet la modularité et la réutilisabilité. La syntaxe de base est obtenue en définissant une fonction qui reçoit une fonction en paramètre. Les utilisations avancées incluent : les fermetures, les fonctions d’ordre supérieur et le filtrage des données.
Conseils pour passer des fonctions en tant que paramètres dans le langage Go
En langage Go, passer des fonctions en tant que paramètres est une fonctionnalité puissante et flexible. Il vous permet de créer des composants modulaires et réutilisables dans votre code.
Syntaxe de base
La syntaxe de base pour passer des fonctions en tant qu'arguments est la suivante :
func main() { f := func(a, b int) int { return a + b } sum := process(f, 10, 20) fmt.Println(sum) // 输出:30 } func process(f func(int, int) int, a, b int) int { return f(a, b) }
Utilisation avancée
Les utilisations plus avancées pour passer des fonctions en tant qu'arguments incluent :
Cas pratique : Filtrage des données
Un cas pratique courant qui utilise les fonctions de transfert comme paramètres est le filtrage des données. L'extrait de code suivant montre une fonction qui filtre une tranche de chaîne, en passant une fonction comme argument pour déterminer s'il faut conserver chaque élément :
func main() { data := []string{"a", "b", "c", "d", "e"} filtered := filter(data, func(s string) bool { return strings.Contains(s, "a") }) fmt.Println(filtered) // 输出:["a"] } func filter(data []string, f func(string) bool) []string { result := []string{} for _, s := range data { if f(s) { result = append(result, s) } } return result }
Conclusion
Passer une fonction comme argument est un excellent moyen de créer des modules modulaires dans Go Un mécanisme puissant pour optimiser votre code. En comprenant sa syntaxe et son utilisation avancée, vous pouvez libérer tout son potentiel.
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!