Golang 的函数类型是一等类型,这意味着可以把函数当作一个值来传递和使用,函数值既可以当作其他函数的参数 也可以当作其他的函数的结果,不过我们需要把函数首先提升一个等级,样例代码如下:
package main
import "fmt"
type intNumOps func(num1 int, num2 int) (int)
func main() {
numOpsList := []intNumOps{
func(a int, b int) int { return a + b },
func(a int, b int) int { return a - b },
func(a int, b int) int { return a * b },
func(a int, b int) int { return a / b },
}
num1 := 10
num2 := 4
fmt.Println(numOpsList[0](num1, num2))
fmt.Println(numOpsList[1](num1, num2))
fmt.Println(numOpsList[2](num1, num2))
fmt.Println(numOpsList[3](num1, num2))
}
评论已关闭