首页 > 其他 > 详细

闭包函数

时间:2019-12-10 16:26:24      阅读:69      评论:0      收藏:0      [点我收藏+]

一、定义

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

内层函数

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

 

闭包函数

原文:https://www.cnblogs.com/xiongying4/p/12012884.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!