| 
 
| 我有以下kotlin程序: var a = 10
 fun main(args:Array<String>){
 var a1:()->Unit = test()
 var a2 :()->Unit= test()
 var a3 :()->Unit= test()
 a1()
 a2()
 a3()
 test2()
 test2()
 test2()
 }
 
 fun test():()->Unit{
 //var a = 10
 return {
 println(a)
 ++a
 }
 }
 
 fun test2(){
 //var a = 10
 println(a)
 ++a
 }
 输出结果是:
 10
 11
 12
 13
 14
 15
 这是我想要的结果,但我把
 fun test():()->Unit{
 //var a = 10
 把上面的//去掉后,输出结果是:
 10
 10
 10
 10
 11
 12
 fun test():()->Unit{这个语句是定义闭包的语句吗?闭包不是保存函数上一次执行的结果内容吗?为什么输出结果还是:
 10
 10
 10
 10
 11
 12
 | 
 |