Go のラムダ式
他の多くのプログラミング言語とは異なり、Go の構文にはラムダ式がありません。ただし、同様の機能を実現する代替メカニズムが提供されます。
ラムダ式と同様の機能
Go の匿名関数は、ラムダ式の代替として機能します。匿名関数は特定の名前のない関数であり、通常はインライン式として使用されます。その構文は次のとおりです:
func(parameters) return_type { // function body }
たとえば、文字列を返す匿名関数を定義するには:
func() string { return "Stringy function" }
実際の使用法
Anonymous関数は変数に割り当てたり、引数として他の関数に渡すことができるため、コードの柔軟な再利用とカスタマイズが可能になります。次の Go コードを考えてみましょう:
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()) }
この例では、文字列を返す匿名関数を定義し、それを変数 f に割り当てます。また、変数 baz に割り当てられる無名関数も作成します。 f と baz はどちらも名前付き関数と同様に呼び出すことができます。
以上がGo は明示的なラムダ構文を使用せずにラムダ式の機能をどのように実現しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。