Expressions lambda dans Go
Contrairement à de nombreux autres langages de programmation, Go n'a pas d'expressions lambda dans sa syntaxe. Cependant, il fournit un mécanisme alternatif qui permet d'obtenir des fonctionnalités similaires.
Fonctionnalité similaire aux expressions lambda
Les fonctions anonymes de Go servent de substitut aux expressions lambda. Une fonction anonyme est une fonction qui n'a pas de nom spécifique et qui est généralement utilisée comme expression en ligne. Sa syntaxe est :
func(parameters) return_type { // function body }
Par exemple, pour définir une fonction anonyme renvoyant une chaîne :
func() string { return "Stringy function" }
Utilisation en pratique
Anonyme les fonctions peuvent être affectées à des variables ou transmises comme arguments à d'autres fonctions, permettant une réutilisation et une personnalisation flexibles du code. Considérons le code Go suivant :
type Stringy func() string func foo() string { return "Stringy function" } func takesAFunction(foo Stringy) { fmt.Printf("takesAFunction: %v\n", foo()) } func returnsAFunction() Stringy { return func() string { fmt.Printf("Inner stringy function\n") return "bar" // must return a string to be stringy } } func main() { takesAFunction(foo) f := returnsAFunction() f() baz := func() string { return "anonymous stringy\n" } fmt.Printf(baz()) }
Dans cet exemple, nous définissons une fonction anonyme qui renvoie une chaîne et l'attribuons à une variable f. Nous créons également une fonction anonyme qui est ensuite affectée à la variable baz. F et baz peuvent être invoqués comme des fonctions nommées.
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!