Go 語言中函數切片可作為參數傳遞,並增強程式碼彈性。語法如下:func function(fn func([]int) []int, slice []int) []int,其中 function 接收函數切片 fn 和切片 slice 作為參數。
Go 語言中將函數切片作為參數傳遞
在 Go 語言中,函數可以作為參數傳遞給其他函數。這是一種強大的技術,它可以讓你的程式碼更靈活、更可重複使用。
語法
將函數切片作為參數傳遞的語法如下:
func function(fn func([]int) []int, slice []int) []int
function
是接收函數切片 fn
和切片slice
作為參數的函數。 func
定義了函數切片的類型,它接收一個長度為 N
的整數切片,並傳回一個長度為 M
的整數切片。
實戰案例
我們來看一個將函數切片作為參數傳遞的實戰案例。假設我們有一個函數 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中文網其他相關文章!