在Go語言中,高階函數(shù)是指接受一個或多個函數(shù)作為參數(shù),或者返回一個函數(shù)作為結(jié)果的函數(shù)。要實現(xiàn)這個功能,你可以使用匿名函數(shù)(閉包)或者函數(shù)類型。下面是一些示例:
package main
import (
"fmt"
)
// 高階函數(shù),接受一個整數(shù)和一個匿名函數(shù)作為參數(shù)
func add(a int, f func(int) int) int {
return a + f(a)
}
func main() {
// 使用匿名函數(shù)作為參數(shù)
addFive := add(5, func(x int) int {
return x + 5
})
fmt.Println(addFive) // 輸出:10
}
package main
import (
"fmt"
)
// 定義一個函數(shù)類型
type Function func(int) int
// 高階函數(shù),接受一個整數(shù)和一個函數(shù)類型作為參數(shù)
func add(a int, f Function) int {
return a + f(a)
}
func main() {
// 使用函數(shù)類型作為參數(shù)
addFive := add(5, Function(func(x int) int {
return x + 5
}))
fmt.Println(addFive) // 輸出:10
}
在這兩個示例中,我們定義了一個名為add
的高階函數(shù),它接受一個整數(shù)和一個函數(shù)作為參數(shù)。在main
函數(shù)中,我們使用匿名函數(shù)和函數(shù)類型分別調(diào)用了add
函數(shù)。