A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaowenxiaowen 初级黑马   /  2019-11-24 09:45  /  1807 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我有以下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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马