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