package main
import (
"fmt"
)
// 定义一个高阶函数,它接受一个无参数无返回值的函数作为参数
func higherOrderFunction(f func()) {
// 在高阶函数内部调用传入的函数
f()
}
// 定义一个函数,用于作为高阶函数的参数,实现一种具体行为
func function1() {
fmt.Println("这是 function1 的行为")
}
// 定义另一个函数,用于作为高阶函数的参数,实现另一种具体行为
func function2() {
fmt.Println("这是 function2 的行为")
}
func main() {
// 传递 function1 给高阶函数 higherOrderFunction,实现 function1 的行为
higherOrderFunction(function1)
// 传递 function2 给高阶函数 higherOrderFunction,实现 function2 的行为
higherOrderFunction(function2)
}
代码解释
higherOrderFunction
:
- 这是高阶函数,它接受一个类型为
func()
的函数 f
作为参数。
- 它的功能是在内部调用传入的函数
f
,通过调用不同的传入函数实现不同的行为。
function1
和 function2
:
- 这两个函数都是无参数无返回值的函数,分别实现了不同的具体行为。
- 它们将作为参数传递给
higherOrderFunction
,使 higherOrderFunction
展现出不同的行为。
main
函数:
- 首先调用
higherOrderFunction(function1)
,此时 higherOrderFunction
内部调用 function1
,输出 “这是 function1 的行为”。
- 然后调用
higherOrderFunction(function2)
,此时 higherOrderFunction
内部调用 function2
,输出 “这是 function2 的行为”。