Go的闭包
发布时间:2020-12-16 18:59:36 所属栏目:大数据 来源:网络整理
导读:package mainfunc A(i int) (func() int) {return func() int {return i}}func main() {var a,b func()intvar c [3]func()inti:=0a=func() int {return i}b=func() int {return i}println(a(),b())i=1println(a(),b())a=A(2)b=A(3)println(a(),b())for i:=4;
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
闭包内引用的变量不是拷贝的值,而是直接使用该变量(可以理解为引用),局部变量也是一样的 函数参量每次调用都是不同的(这也是递归的必然要求),因此可以安全的利用函数参量产生不同的闭包 函数的(多)返回值可以直接传递给其他函数用于调用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
