Go言語での無名関数の使用方法


無名関数の基本的な構文は次の通りです:

func() {
    // 無名関数の本体
}

無名関数は変数に代入することもできます。これにより、関数を変数として扱い、他の関数に渡すことができます。以下に、変数に代入された無名関数の例を示します:

package main
import "fmt"
func main() {
    add := func(a, b int) int {
        return a + b
    }
    result := add(3, 4)
    fmt.Println(result) // 出力: 7
}

無名関数は、クロージャ(closure)としても使用することができます。クロージャは、自身が定義されたスコープ内の変数にアクセスすることができる関数です。以下に、クロージャを使用した無名関数の例を示します:

package main
import "fmt"
func main() {
    multiplier := func(factor int) func(int) int {
        return func(n int) int {
            return n * factor
        }
    }
    double := multiplier(2)
    triple := multiplier(3)
    fmt.Println(double(4))  // 出力: 8
    fmt.Println(triple(4))  // 出力: 12
}

無名関数は、より柔軟なコードの記述と再利用性を可能にします。特定のコンテキストでのみ必要な小さな関数を定義する場合や、クロージャを使用して変数の状態を保持する場合に特に有用です。

以上が、Go言語で無名関数を使用する方法といくつかのコード例です。無名関数は関数型プログラミングの重要な概念であり、Go言語の強力な機能の一つです。