zoukankan      html  css  js  c++  java
  • 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. 函数可以作为返回值
  • 相关阅读:
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言|博客作业01
    学期总结
  • 原文地址:https://www.cnblogs.com/randysun/p/15414485.html
Copyright © 2011-2022 走看看