Go 言語の関数スライスをパラメータとして渡すことで、コードの柔軟性を高めることができます。構文は次のとおりです。 func function(fn func([]int) []int,slice []int) []int。function は関数スライス fn とスライススライスをパラメータとして受け取ります。
Go 言語で関数スライスをパラメータとして渡す
Go 言語では、関数をパラメータとして他の関数に渡すことができます。これは、コードをより柔軟で再利用可能にする強力な手法です。
構文
関数スライスをパラメーターとして渡すための構文は次のとおりです。
func function(fn func([]int) []int, slice []int) []int
function
は受信関数スライスです。 fn
およびスライスslice
を引数として持つ関数。 func
は、長さ N
の整数スライスを受け取り、長さ MM
の整数スライスを返す関数スライスのタイプを定義します。
実践的なケース
関数スライスをパラメータとして渡す実際的なケースを見てみましょう。関数スライスとスライスを受け取り、関数スライス内の各関数をスライス内の各要素に適用する関数 apply
があるとします。
package main import "fmt" func main() { // 定义函数切片 fns := []func(int) int{ func(i int) int { return i + 1 }, func(i int) int { return i * 2 }, } // 定义切片 slice := []int{1, 2, 3} // 将函数切片和切片传递给 apply 函数 result := apply(fns, slice) // 打印结果 fmt.Println(result) } // apply 函数接收一个函数切片和一个切片,并对切片中的每个元素应用函数切片中的每个函数 func apply(fns []func(int) int, slice []int) []int { result := make([]int, len(slice)) for i, v := range slice { for _, fn := range fns { result[i] = fn(v) } } return result }
出力
[]int{2, 4, 6}
以上がgolang 関数のスライスがパラメータとして渡されましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。