`
7090
  • 浏览: 273575 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转)关于lua数字for循环的实现

    博客分类:
  • Lua
阅读更多
看以下代码:

for i=1,2 do  
  print(i)  
  i=3  
end  

输出是什么?如果习惯了C/C++语言,会觉得因为改变了控制变量i为3,所以在执行第二次循环体之前判断不通过,所以输出是1。
但结果输出是1和2,即虽然改变了i,但循环还是执行了2次。这是为什么呢?

看了lua的源代码,发现在语法分析阶段,表达式中的i(也叫控制变量)和循环体中的i并不是一个值,其实表达式中的i叫internal index,循环体中的i叫external index。

所以在循环体中并没有改变表达式中的i的值。

至于为什么lua要这样做,估计是为了安全吧,怕在循环体中不经意地改变了表达式的i,从而产生bug。

另外,在Progammming in Lua一书中也提到不要在循环体内修改控制变量(实际修改的是external index)的值,否则会有不可预知的结果。

原文:http://blog.csdn.net/yanjun_1982/article/details/8966332
分享到:
评论

相关推荐

    lua for循环代码示例

    lua for循环代码示例,比较简单,仅供参考测试

    c和lua的中文和阿拉伯数字互转

    c语言和lua语言的中文数字(语音数字)到阿拉伯数字相互转换函数

    LuaForWindows_v5.1.5-52 安装包

    lua for windows其实是一整套Lua的开发环境.Lua for Windows 为 Windows 系统下提供了 Lua 脚本语言的开发和运行环境。Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用...

    LUA 实现数字金额转汉字大写

    LUA 实现数字金额转汉字大写,最近,项目需要在前端实现,数字金额转汉字大写,测试不多,可能存在问题,请多多指教 另外,此段代码中附赠有以下两个字符串函数,也可以单独使用 myremove(str , chr) split(str, chr...

    Lua中数字for循环实例

    主要介绍了Lua中数字for循环实例,本文直接给出数字循环代码示例,并探讨了改变控制变量的一些问题,需要的朋友可以参考下

    新版本 Lua 5.4.2 for Windows 已编译好的文件 解压+配置环境变量即可用

    新版本 Lua 5.4.2 for Windows 已编译好的文件 解压+配置环境变量即可用 网上已编译的Lua文件过老 都是Lua 5.1左右的老版本 这个是Lua 5.4.2版本 Win10环境下亲测可用 安装方法 1. 解压缩并复制到安装的位置 比如D:\...

    lua iconv For windows

    在windows下 用lua转换将gbk转为utf 8 2013 11 16 17:56 0人阅读 评论 0 收藏 编辑 删除 本来以为很简单 结果找了半天发现都是很坑爹的办法 linux下可以直接安装luaiconv windows下呢 只好自己编了 本来想找个别人写...

    Lua 5.3.5 for Windows .rar

    Lua 5.3.5 for Windows .rar,我自己编译的lua最新版5.3.5,需要编译方法的可以留qq,我发给你

    LuaforWindows5.4.zip

    LuaforWindows5.4版本,下载压缩包以后解压将文件夹内lua.exe对应的路径添加到windows环境变量path中即可,cmd打开windows命令窗口输入lua回车,如果输出lua 5.4.0 xxxx就代表windows下lua 环境配置成功啦。

    Lua中for循环语句的使用教程

    主要介绍了Lua中for循环语句的使用教程,是Lua入门学习中的基础知识,需要的朋友可以参考下

    LuaForWindows

    内含LuaForWindows_v5.1.4-35.exe 若LuaForWindows安装失败,请先安装vcredist_x86.exe

    基于串口屏LUA脚本—循环播放音频功能配套工程文件

    基于串口屏LUA脚本—循环播放音频功能配套工程文件。

    lua文本转成json文本

    lua json文件转换 数据编排 lua配置表转成 json配置表

    Lua中文教程pdf+LuaForWindows

    Lua 是一个小巧的脚本语言。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。...安装方法:安装LuaForWindows即可,不停点下一步,安装完后,桌面上会出现Lua图标和SciTE编辑器,enjoy it...

    Csv转Lua工具(纯Lua版)

    用Lua语言写的一个配置文件转换工具,能够将csv配置文件转换为Lua“类文件”。支持的格式有数字、字符串、数字数组、字符数组和table等。内有详细使用说明。水平有限,如有Bug或者好的建议欢迎留言交流。

    unity里面使用编辑器把json文件转换成lua文件

    可以把json转换成lua文件放在工程里面 只需要指定文件读取位置 和 存放位置即可

    Lua的for in和pairs1

    Lua的for in和pairs1

    Lua for windows 5.1.4 安装包

    Lua for windows 5.1.4 安装包

    Lua for Windows 5.1.4-46---LuaForWindows.rar

    Lua for Windows 5.1.4-46---LuaForWindows.rar

    LuaForWindows_v5.1.4

    Lua for Windows is a 'batteries included environment' for the Lua scripting language on Windows. Lua for Windows (LfW) combines Lua binaries, Lua libraries with a Lua-capable editor in a single ...

Global site tag (gtag.js) - Google Analytics