LUA 学习笔记 02
来源:互联网 发布:网络评论兼职 编辑:程序博客网 时间:2024/04/28 08:51
1. LUA函数特征:
a.第一类值
b.词法域(内函数可以访问外函数的局部变量)
2. 尾调用消除(不再返回调用原函数)
return <func>(<args>)
3. colsure迭代
functionvalues(t)
locali=0
return function() i=i+1; return t[i]end
end
/* 用while循环访问所有元素 */
t = {1,2,3}
itr = values(t)
while true do
localelement = iter()
ifelement == nil then break end
print(element)
end
/* 泛式for访问所有元素 */
for element in values(t) do
print(element)
end
4. 若函数调用不是一系列表达式的最后一个元素,则函数返回单值。
5. 给函数加上(),强制其返回单值。
6. unpack()解包数组所有元素为多值返回(下标从1开始)。
7. LUA支持变长参数f(…),其中…为参数数组,访问机制如下:
a.for i,v in ipairs{…} do … end
b.for i=1,select(“#”,…)do
localarg = select(i,…)
…
end
8. 当实参只有一个table构造式时,()可有可无。
9. 函数定义实际是一条赋值语句,这语句创建了一类型为函数的值,并将值赋予一个变量。
10. 匿名函数:function(x) return x end
11. closure 指一个函数及其所能访问到的一系列“非局部变量”(upvalue)。
就是可以访问其外部嵌套环境中的局部变量的函数(可做计数器)。
12. closure 做迭代器:
for val_1,…var_n in <explist> do
<block>
end
等价于:
do
local_f,_s,_var = <explist>
whiletrue do
localvar_1,…,varn = _f(_s,_var)
_var= var_1
if_var == nil then break end
<block>
end
end
_f: 迭代器函数
_s: 恒定状态
_var: 控制变量初始值
- LUA 学习笔记 02
- lua学习笔记02
- Lua学习笔记(1)
- Lua学习笔记一
- Lua学习笔记一
- Lua学习笔记一
- Lua学习笔记一
- Lua学习笔记二
- LUA 学习笔记 01
- LUA 学习笔记 03
- lua学习笔记
- Lua学习笔记
- LUA学习笔记
- Lua 学习笔记
- lua学习笔记
- Lua学习笔记1
- lua学习笔记
- lua学习笔记(1)
- LUA 学习笔记 01
- Java访问LDAP服务器认证代码示例
- 在网上看到的技巧,记录在这里,备用
- 关于提高自己水平的十大技术
- ofstream和wofstream与中文输出问题
- LUA 学习笔记 02
- 郭德纲语录
- ABAP OLE2设粗体
- LUA 学习笔记 03
- Tomcat6 中文乱码(一)
- 给JS代码高亮写个注释
- java程序员代码工作量---CodeCounter
- 不规则区域窗口
- EmailSpider-----获取网页上邮件的信息