1. 程式人生 > 其它 >Go語言基礎之高階函式

Go語言基礎之高階函式

Go語言基礎之高階函式

高階函式分為函式作為引數和函式作為返回值兩部分。

一、函式作為引數

函式可以作為引數:

func add(x, y int) int {
    return x + y
}
func calc(x, y int, op func(int, int) int) int {
    return op(x, y)
}
func main() {
    ret2 := calc(10, 20, add)
    fmt.Println(ret2) //30
}

二、函式作為返回值

函式也可以作為返回值:

func do(s string) (func(int, int) int, error) {
    switch s {
    case "+":
        return add, nil
    case "-":
        return sub, nil
    default:
        err := errors.New("無法識別的操作符")
        return nil, err
    }
}

三、函式放入切片

func main{
    type typeFunc func(int, int) int
	var name []typeFunc = []typeFunc{add1}
	for _, key := range name {
		fmt.Println(key(2, 4)) // 6
	}
}
func add1(x, y int) int {
	return x + y
}

四、總結

  1. 函式可以當作函式引數傳參
  2. 函式可以作為返回值
在當下的階段,必將由程式設計師來主導,甚至比以往更甚。