永发信息网

lua语言建立一个函数如何调用执行这个函数?

答案:2  悬赏:0  手机版
解决时间 2021-02-19 01:16
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())却可以?(注释是我自己写的)
最佳答案
其实这个例子 应该是一个计数器吧
本身也是闭包的一个演示例子
首先你要看newCounter这个函数的返回值

它的返回值 返回的不是一个具体的数字,而是一个函数
所以 如果直接print这个函数 得到的是function xxxx
当调用这个返回的函数才能得到这个值
全部回答
不谢!!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
新天地大酒店这个地址在什么地方,我要处理点
仙剑奇侠传幻璃镜哪个套装好 套装推荐攻略
求女主比较男孩子气,比较中性的小说,可男主
一个点要到两个点和一条线的距离同时相等要怎
新桑塔纳1.4手动风尚版用哪种机油比较好
中国电信即墨分公司地址在哪,我要去那里办事
腿上长了圆圈一样青的东西是什么怎样才能去掉
易到司机离职后怎么办
嘴唇干的起皮 喝水也没用 除了一直上厕所 好
这键盘线怎么接!键盘线断了!换根
某一水域某时刻的实际水深由()组成。A.海图中
八方聚汇酒楼怎么去啊,有知道地址的么
游戏ui的课程有哪些?
液体药品通常盛放在细口瓶里,如图所示是液体
创维42e320w液晶电视报价怎么样
推荐资讯
怎样才能把手机上播放的视频转换到夏普液晶电
水电材料有哪些品牌?
假释办到最后检察院提起抗诉是不是就意味着没
阿林美发店这个地址在什么地方,我要处理点事
小米的miui系统和魅族的flme系统那个好用
月下独酌 全诗在艺术上有什么特色?
是单眼皮的男生比较帅一点儿还是双眼皮的男生
网上做宣传有什么形式,分别的成本多少,效益
高中必修一生物有关蛋白质的几个问题
胜芳汽车站在高铁站旁边吗
魅族mx3Flyme OS 3.3.2 提示升级Flyme OS 3.5
蜂蜜有没有保持期?永远不会变质吗?最多可以
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?