在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、Lua的特性
2、Lua数据类型
Lua是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。 Lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread和table。 其中:Lua 把 false 和 nil 看作是"假",其他的都为"真":
3、pairs 和 ipairs区别
代码示例: local tab= {
[1] = "a",
[3] = "b",
[4] = "c"
}
for i,v in pairs(tab) do -- 输出 "a" ,"b", "c" ,
print( tab[i] )
end
for i,v in ipairs(tab) do -- 输出 "a" ,k=2时断开
print( tab[i] )
end
4、Lua元表(Metatable)
在 Lua table 中我们可以访问对应的key来得到value值,但是却无法对两个 table 进行操作。 因此 Lua 提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。 例如,使用元表我们可以定义Lua如何计算两个table的相加操作a+b。 当Lua试图对两个表进行相加时,先检查两者之一是否有元表,之后检查是否有一个叫"__add"的字段,若找到,则调用对应的值。"__add"等即时字段,其对应的值(往往是一个函数或是table)就是"元方法"。 有两个很重要的函数来处理元表:
__index 元方法 这是 metatable 最常用的键。 当你通过键来访问 table 的时候,如果这个键没有值,那么Lua就会寻找该table的metatable(假定有metatable)中的__index 键。如果__index包含一个表格,Lua会在表格中查找相应的键。
Lua查找一个表元素时的规则,其实就是如下3个步骤:
__newindex 元方法
__newindex 元方法用来对表更新,__index则用来对表访问 。 当你给表的一个缺少的索引赋值,解释器就会查找__newindex 元方法:如果存在则调用这个函数而不进行赋值操作。 __call 元方法 __call 元方法在 Lua 调用一个值时调用。 __tostring 元方法 __tostring 元方法用于修改表的输出行为。
5、闭包 闭包:通过调用含有一个内部函数加上该外部函数持有的外部局部变量(upvalue)的外部函数(就是工厂)产生的一个实例函数 闭包组成:外部函数+外部函数创建的upvalue+内部函数(闭包函数) http://www.cnblogs.com/zzy-frisrtblog/p/5864209.html
6、C和lua的互相调用 http://blog.csdn.net/wwwsq/article/details/7835619 http://www.cnblogs.com/sevenyuan/p/4511808.html 7、Lua热更新机制的实现
8、Lua 协同程序(coroutine) |
请发表评论