函数和函数闭包

这里写图片描述

5.函数及函数闭包
5.1函数

--多返回值的函数
function foo(a,b,c)
    local sum=a+b;
    return sum,c
end
--平行赋值
r1,r2=foo(1,"123","helloworld!")
print(r1,r2)

运行结果:
这里写图片描述

5.2函数闭包
Upvalue:一个函数所使用的定义在它的函数体之外的局部变量
函数闭包:一个函数和它所有使用的upvalue构成函数的闭包

function countdowntimer(second)
    local ms=second*1000
--ms对于函数countDown()是一个upvalue,对于函数countdowntimer()只是一个局部变量
    local function countDown()
        ms=ms-1
        return ms
    end
--返回的是一个函数
    return countDown
end
--time1为函数
time1=countdowntimer(1)
for i=1,3 do
    print(time1())

end
print("#########")

time2=countdowntimer(1)
for i=1,3 do
    print(time2())
end

运行结果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值