闭包函数

独自空忆成欢 提交于 2019-12-10 15:30:42

一、定义

闭包函数:定义在函数内部,对外部作用域有引用

内层函数

import "fmt"

func main(){

}

//go中函数内部定义的函数是不能有名的,需要定义匿名函数:没有名字
func test(a int){
    func(){
        fmt.Println("我是内置函数")
    }()  //  这个括号是用来调用匿名函数的
}

闭包函数

func test(a int) (func()){  // func()表示返回值部分
    b := func(){
        fmt.Println(a)
        fmt.Println("我是闭包函数")
    }
    return b
}

定义一个函数,传入函数,返回函数

func test(a func()) func(){
    b := func(){
        fmt.Println("我先执行")
        a()
        fmt.Println("函数执行完了")
    }
    return b
}
func test2(){
    fmt.Println("xxx")
}

给类型命别名

type MyFunc  func(a int,b int) func()

type MyInt int
func test() (MyFunc)  {

    c:= func(a int,b int) func(){

        return func() {

        }
    }
    return c

}
func main() {
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!