黑马程序员技术交流社区

标题: 关于kotlin的闭包问题 [打印本页]

作者: xiaowenxiaowen    时间: 2019-11-24 09:45
标题: 关于kotlin的闭包问题
我有以下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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2