function newCounter()
local i = 0
return function() i=i+1
return i end
end
c1 = newCounter()
print(c1)
print(newCounter())--()不会让一个函数执行
print(c1()) --> 1
c2 = newCounter() --c2是一个地址、newCounter()也是函数的地址 而c2()才会得出函数的调用结果
print(newCounter()) --0x7f8479c09db0地址(结果不一样)
print(c2()) -->1
print(c2()) -->2
为什么这里newCounter()没法得出结果?
c1 = newCounter() print(c1())却可以?(注释是我自己写的)
lua语言建立一个函数如何调用执行这个函数?
答案:2 悬赏:0 手机版
解决时间 2021-02-19 01:16
- 提问者网友:饥饿走向夜
- 2021-02-18 21:33
最佳答案
- 五星知识达人网友:笑迎怀羞
- 2021-02-18 21:55
其实这个例子 应该是一个计数器吧
本身也是闭包的一个演示例子
首先你要看newCounter这个函数的返回值
它的返回值 返回的不是一个具体的数字,而是一个函数
所以 如果直接print这个函数 得到的是function xxxx
当调用这个返回的函数才能得到这个值
本身也是闭包的一个演示例子
首先你要看newCounter这个函数的返回值
它的返回值 返回的不是一个具体的数字,而是一个函数
所以 如果直接print这个函数 得到的是function xxxx
当调用这个返回的函数才能得到这个值
全部回答
- 1楼网友:思契十里
- 2021-02-18 22:44
不谢!!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯