Golang の高階関数は関数を受け取り、関数を返します。これらは、関数をパラメータとして受け取る、他の関数を処理する、または動的プログラムを実行するという 2 つのカテゴリに分類されます。関数を戻り値として返す: 保存して後で実行できる関数を作成して返します。
Golang の高階関数について理解する
Golang の高階関数は、関数をパラメーターとして受け取り、返す関数です。または戻り値関数。これにより、コードの再利用性、抽象化、保守性が向上する可能性が高まります。
高階関数の種類
Golang には主に 2 つの種類の高階関数があります:
実際的なケース
関数をパラメータとして受け入れる
func mapFunc(fn func(int) int, nums []int) []int { result := make([]int, len(nums)) for i, num := range nums { result[i] = fn(num) } return result } func main() { nums := []int{1, 2, 3, 4, 5} squaredNums := mapFunc(func(num int) int { return num * num }, nums) fmt.Println(squaredNums) // 输出: [1 4 9 16 25] }
ここでは、mapFunc
を受け入れます関数 fn
を引数として使用し、それを各要素に適用します。 fn
各要素を二乗して新しい配列を返します。
戻り値として関数を返す
func genAdder(x int) func(int) int { return func(y int) int { return x + y } } func main() { add5 := genAdder(5) result := add5(10) fmt.Println(result) // 输出:15 }
この例では、genAdder
はキャプチャして使用できるクロージャ関数を返します。外部変数 バツ###。
add5 関数が呼び出され、パラメータとして 10 を受け取り、15 を返します。
以上がGolang の関数型の高次関数を理解するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。