Go的闭包
博客专区 > 刘地 的博客 > 博客详情
Go的闭包
刘地 发表于4年前
Go的闭包
  • 发表于 4年前
  • 阅读 75
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

package main

func A(i int) (func() int) {
	return func() int {
		return i
	}
}

func main() {
	var a, b func()int
	var c [3]func()int
	
	i:=0
	a=func() int {
		return i
	}
	b=func() int {
		return i
	}
	println(a(),b())
	i=1
	println(a(),b())
	
	a=A(2)
	b=A(3)
	println(a(),b())
	
	for i:=4;i<7;i++{
		c[i-4]=func() int {
			return i
		}
	}
	println(c[0](),c[1](),c[2]())
}
// 0 0
// 1 1
// 2 3
// 7 7 7

闭包内引用的变量不是拷贝的值,而是直接使用该变量(可以理解为引用),局部变量也是一样的
函数参量每次调用都是不同的(这也是递归的必然要求),因此可以安全的利用函数参量产生不同的闭包
函数的(多)返回值可以直接传递给其他函数用于调用

标签: go golang closure
共有 人打赏支持
粉丝 100
博文 52
码字总数 69858
作品 1
×
刘地
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: