在Go語言中,可以通過將函數作為參數傳遞給其他函數,或者將函數作為返回值,來實現函數的改造。
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
}
通過以上兩種方式,可以實現對函數進行改造和擴展,使得函數具有更高的靈活性和可復用性。