無名関数の基本的な構文は次の通りです:
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言語の強力な機能の一つです。