编程笔记:Golang 函数type类型

@李彪  October 7, 2018

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))
}

评论已关闭