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
闭包内引用的变量不是拷贝的值,而是直接使用该变量(可以理解为引用),局部变量也是一样的 函数参量每次调用都是不同的(这也是递归的必然要求),因此可以安全的利用函数参量产生不同的闭包 函数的(多)返回值可以直接传递给其他函数用于调用
原文地址:https://www.jb51.cc/go/191291.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。