lua学习总结

1、 lua标识符避免下划线接大写字母,该格式为lua保留关键字。

2、 当使用全局变量时,在变量名前加个g字母更易于区分。

3、 在lua中,falsenil都被逻辑运算符当做false

4、 Lua使用return去调用另一个函数,当调用return后,原函数从栈中删除,降低栈溢出的风险。即所谓的尾调用(tail-call):在尾调用中,被调用的函数重用调用它的函数的堆栈项。 因此,对于程序执行的嵌套尾调用的层数是没有限制的。 然而,尾调用将删除调用它的函数的任何调试信息。

5、 可以使用loadstring函数将编好的代码块存在string中,然后使用assert函数执行。

6、 luaGlue函数:lua脚本中调用C++函数的接口。

Lua API提供了函数供C++调用lua函数。

7、 数据存储:

对于大型或角色扮演类游戏,都需要载入大量数据,可以使用表单型数据,即使用Excel编辑数据并保存为CSV格式,然后通过lua程序加载,读取数据。这种方式适合有大量数据需要存储,并且数据之间有关联;对于数据之间不需要相互关联,单独查看更好的使用lua格式数据文件。

8、 界面设计原则:

1)  保持界面的简洁;2)保持舒服的视觉体验;3)只显示重要的信息;4)提供有意义的反馈

9、 lua调试技巧:

1)  调用DoFile函数,查找非逻辑错误;

2)  Lua错误消息,显示某一行的错误消息,尽量使用能显示行数的编辑器;

3)  使用实时调试窗口

4)  使用文本框

5)  使用文件输出:当需要调试高速数据处理或者大数据量处理时,在调试窗口中输出信息的做法不是很有效。

10、             lua中函数与所有其它值一样都是匿名的,即他们没有名称。当讨论一个函数名时,实际上是在讨论一个持有某函数的变量。

11、             所谓Closure就是一个函数加上该函数所需访问的非局部变量。

闭包的作用:1)可作为高阶函数的参数,如作为sort函数的参数;(高阶函数:接受另一个函数作为实参的函数)

2)可用于创建其它函数的函数(如计数器函数);

3)重新定义某个函数;

4)创建一个安全的运行环境,即所谓的“沙盒”

12、             元表

Lua中的每个值都有一个元表。table和userdata可以有各自独立的元表,而其他类型的值则共享其类型所属的单一元表。可以使用setmetatable设置或修改任何table的元表。在Lua代码中,只能设置table的元表,若要设置其他类型的值得元表,则必须通过C代码来完成。

13、             算数类元方法

__add(加法)、__mul(乘法)、__sub(减法)、__div(除法)、__unm(相反数)、__mod(取模)、__pow(乘幂)

14、             关系类元方法

__eq(等于)、__lt(小于)、__le(小于等于)

15、             库定义的元方法

__tostring(格式化输出)、__metatable(保护集合元表)

16、             table访问元方法

__index(用于table的查询)__newindex(用于table的更新)

17、比较相等时,对于表、用户数据以及线程都按引用比较;如果参数都是数字, 它们按二元操作的常规进行。 否则,如果两个参数都是字符串, 它们的值按当前的区域设置来比较。 再则,Lua 就试着调用 "lt" 或是 "le" 元方法 (参见 §2.4)。 a > b 的比较被转译为 b < a, a >= b 被转译为 b <= a。

注意:     1) 在一条语句以小括号开头时,前面加个分好避免二义性;

2)可以将函数调用放入一对圆括号中,从而迫使它只返回一个结果,如果函数不返回值得话,其结果就是nil,形如(f());

3)对整数数学运算溢出问题,采取的策略是按以2为补码的数学运算的环绕规则(即将返回其运算结果对2^64取模后的结果);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值