lua闭包

简介: function MakeCounter() local t = 0 return function() t = t + 1 return t end end local func = MakeCounter() for...
function MakeCounter()
    local t = 0
    return function()
        t = t + 1
        return t
    end
end

local func = MakeCounter()
for i = 0,10 do
    print(func())
end
local func2 = MakeCounter()
for i = 0,10 do
    print(func2())
end

>lua -e "io.stdout:setvbuf 'no'" "main.lua"
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
>Exit code: 0

相关文章
|
自然语言处理 关系型数据库 MySQL
PowerDesiger16与MySQL操作互转
PowerDesiger16与MySQL操作互转
329 0
|
安全 网络协议 Unix
Web Security 之 OS command injection
Web Security 之 OS command injection
465 0
|
4月前
|
传感器 自然语言处理 资源调度
AR 交互与自动感应技术的博物馆智慧导览系统功能解析
本系统结合AR图像识别、自动感应与多语言资源管理,实现虚拟内容与文物精准叠加、自动讲解与智能导航,提升博物馆导览体验智能化、互动性。
465 1
|
Android开发 C++
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
1486 0
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
|
Windows
DOS 批处理 setlocal命令、endlocal命令详解
setlocal这是一个命令,它开始局部化环境更改,通常在批处理文件中使用,以确保在脚本中所做的任何环境更改(例如设置或修改环境变量)不会影响到调用此批处理的上下文或其他批处理文件
647 14
|
存储 前端开发 JavaScript
前端模块化打包工具的深度解析
【10月更文挑战第13天】前端模块化打包工具的深度解析
|
定位技术 数据处理
计算机网络的定义和组成
计算机网络的定义和组成。
549 0
计算机网络的定义和组成
|
算法 搜索推荐 芯片
TM4C123库函数学习(1)--- 点亮LED+TM4C123的ROM函数简介+keil开发环境搭建
TM4C123库函数学习(1)--- 点亮LED+TM4C123的ROM函数简介+keil开发环境搭建
401 0
|
存储 机器学习/深度学习 人工智能
走近阿里Apsara Clouder云计算的蓝图
一:"什么是Apsara Clouder 云计算" 二:"Apsara Clouder 云计算"厉害在哪里? 三:"Apsara Clouder 云计算"认证 一:“什么是Apsara Clouder 云计算”
1020 1