发布时间:2024-12-23 01:28:22
var sum func(int, int) int
sum = func(a, b int) int {
return a + b
}
result := sum(3, 4) // 调用函数名变量
fmt.Println(result) // 输出结果:7
在这个例子中,我们声明了一个名为"sum"的函数名变量,它接受两个int类型的参数并返回它们的和。然后,我们将一个匿名函数赋值给该变量,这个匿名函数的功能与我们声明的"sum"函数一样。最后,我们通过调用函数名变量来执行该函数,并将结果打印出来。
func calculate(a, b int, operation func(int, int) int) int {
return operation(a, b)
}
result := calculate(5, 7, sum) // 将sum函数名作为参数传递
fmt.Println(result) // 输出结果:12
在这个例子中,我们定义了一个名为"calculate"的函数,它接受三个参数:两个int类型的数和一个函数名变量,该函数名变量可以接受两个int类型的数并返回一个int类型的结果。在函数体内,我们通过调用传入的函数名变量来执行对应的函数操作,并将结果返回。
在调用"calculate"函数时,我们传递了之前我们定义的"sum"函数名变量作为参数。这样,"calculate"函数内部就会执行"sum"函数来计算传入的两个数的和,并将结果返回。
func operationType(operation string) func(int, int) int {
if operation == "+" {
return func(a, b int) int {
return a + b
}
} else {
return func(a, b int) int {
return a - b
}
}
}
add := operationType("+") // 返回一个加法函数
subtract := operationType("-") // 返回一个减法函数
result1 := add(3, 4) // 调用返回的加法函数
result2 := subtract(3, 4) // 调用返回的减法函数
fmt.Println(result1) // 输出结果:7
fmt.Println(result2) // 输出结果:-1
在这个例子中,我们定义了一个名为"operationType"的函数,它接受一个字符串类型的参数,并根据参数值返回不同的函数操作。如果参数是"+",则返回一个加法函数,否则返回一个减法函数。
通过调用"operationType"函数,我们可以得到不同的函数名变量,然后将其赋给变量"add"和"subtract"。最后,我们可以通过调用这两个函数名变量来执行对应的函数操作,并将结果打印出来。