Lua 基础之函数进阶

闭包 closure函数可以嵌套函数,内层函数可以访问外层函数的局部变量,这种特性叫做和函数闭包lua 中除了全局变量和局部变量之外,还有一种叫“非局部变量”的变量闭包 closure 的概念是一个函数和该函数能访问的所有“非局部变量”,lua 其实只有闭包,没有函数,函数只是特殊的闭包而已,即没有“非局部变量”
摘要由CSDN通过智能技术生成

闭包 closure

  • 函数可以嵌套函数,内层函数可以访问外层函数的局部变量,这种特性叫做和函数闭包
  • lua 中除了全局变量和局部变量之外,还有一种叫“非局部变量”的变量
  • 闭包 closure 的概念是一个函数和该函数能访问的所有“非局部变量”,lua 其实只有闭包,没有函数,函数只是特殊的闭包而已,即没有“非局部变量”
function counter()
    local i = 0
    return function()
        i = i + 1
        return i
    end
end

-- c1 c2 是两个不相干的闭包,这个闭包包括一个匿名函数和一个非局部变量 i
c1 = counter()
c2 = counter()
print(c1()) -- 1
print(c2()) -- 1
print(c2()) -- 2
print(c2()) -- 3
print(c1()) -- 2

student = {
  {name = "lin", grade = 90}, {name = "qiang", grade = 85}, {name = "li", grade = 79}, {name = "jia", grade = 80}}

-- 按名字排序
sortByName = function(student)
    table.sort(
        student,
    
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值