Go のラムダ式: 詳細な説明
多くの現代言語の便利な機能であるラムダ式を使用すると、開発者は匿名関数を定義できます。ハエ。 Go はラムダ式を明示的にサポートしていませんが、同等の機能を提供する同様の構造を提供します: 匿名関数.
Go では、匿名関数は func キーワードの後に関数を使用して宣言されます。パラメータと本体。名前付き関数とは異なり、匿名関数には名前がなく、通常は他のコード内でインラインで定義されて使用されます。以下に例を示します。
func main() { // Define an anonymous function that returns a string stringy := func() string { return "Stringy function" } // Pass the anonymous function as an argument to another function takesAFunction(stringy) } func takesAFunction(foo func() string) { fmt.Printf("takesAFunction: %v\n", foo()) }
この例では、文字列を返す stringy という名前の匿名関数を定義します。次に、引数として stringy を takeAFunction() 関数に渡します。この関数は、stringy を呼び出した結果を出力します。
匿名関数を使用して関数を返すこともできます。以下に例を示します。
func main() { // Define an anonymous function that returns a string stringy := func() string { return "bar" // have to return a string to be stringy } // Return the anonymous function as the result of another function returnsAFunction()() } func returnsAFunction() func() string { return func() string { fmt.Printf("Inner stringy function\n") return "bar" } }
この例では、returnsAFunction() 関数は文字列を返す匿名関数を返します。次に、返された匿名関数を呼び出します。この関数はメッセージを出力し、文字列を返します。
以上がGo は明示的なサポートなしでラムダ式の機能をどのように実現しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。