自分に対する備忘録として残すもの
無名関数を関数の引数で使用する
サンプルコード
package main
import "fmt"
// 関数applyFunctionは、無名関数を引数に取り、その関数を実行します。
func applyFunction(f func(int) int, x int) int {
// 引数として渡された無名関数を実行し、結果を返す
return f(x)
}
func main() {
// 無名関数を作成し、その場で引数として渡す
result := applyFunction(func(n int) int {
return n * 2
}, 5)
// 結果を出力
fmt.Println("Result:", result)
}
引数に渡す無名関数は以下の通りでも良い。(個人的にはこちらの方が読みやすいから好き)
package main
import "fmt"
// 関数applyFunctionは、無名関数を引数に取り、その関数を実行します。
func applyFunction(f func(int) int, x int) int {
// 引数として渡された無名関数を実行し、結果を返す
return f(x)
}
func main() {
// 無名関数を作成し、その場で引数として渡す
f1 := func(n int) int {
return n * 2
}
result := applyFunction(f1, 5)
// 結果を出力
fmt.Println("Result:", result)
}
無名関数をリターンする関数
package main
import "fmt"
// createMultiplierは、倍率を引数に取り、その倍率で数値を乗算する無名関数を返します。
func createMultiplier(factor int) func(int) int {
// 引数として与えられた倍率で数値を乗算する無名関数を作成し、それを返す
return func(x int) int {
return x * factor
}
}
func main() {
// 倍率2の無名関数を作成
// multiplierはリターンされた無名関数
multiplier := createMultiplier(2)
// 無名関数の引数に値を渡して、無名関数を実行する。
result := multiplier(5)
// 結果を出力
fmt.Println("Result:", result)
}
サンプル等についてはChatGPTで生成しております。