在Go語言中,可以通過將函數(shù)作為參數(shù)傳遞給其他函數(shù),或者將函數(shù)作為返回值,來實現(xiàn)函數(shù)的改造。
func operate(fn func(int) int, num int) int {
return fn(num)
}
func double(n int) int {
return n * 2
}
func main() {
result := operate(double, 5)
fmt.Println(result) // 輸出: 10
}
func generateMultiplier(factor int) func(int) int {
return func(n int) int {
return n * factor
}
}
func main() {
double := generateMultiplier(2)
result := double(5)
fmt.Println(result) // 輸出: 10
}
通過以上兩種方式,可以實現(xiàn)對函數(shù)進行改造和擴展,使得函數(shù)具有更高的靈活性和可復(fù)用性。