lua学习总结

原创 2015年07月06日 16:53:39

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取模后的结果);

相关文章推荐

Lua中的元表与元方法学习总结

这篇文章主要介绍了Lua中的元表与元方法学习总结,本文讲解了算术类的元方法、__tostring元方法等内容,需要的朋友可以参考下前言元表对应的英文是metatable,元方法是metamethod。...

Lua学习总结 (安装与使用)

Lua学习总结 (一)晓宝老师为了哄女孩开心,决定做一个独一无二的游戏给心爱的她玩,这只是个漫长的开始。 lua版本的开始: 关键字:Lua安装、使用 1. Lua安装 首先在...

Lua学习总结(函数)

关键词:Lua函数 1 函数格式function MyFunc(param) -- Do something end注意:一个函数若只有一个参数,并且此参数是一个字符串或table构造式,...

Lua学习总结(表达式)

宝宝今天总结一下Lua的表达式哦,不要错过哦。 关键词: 表达式 算术操作符 ”+ ”(加法), ”-“(减法), ”* ”(乘法), ”/ ”(除法), ”^ ”(指数), ”% ”(...

Lua 语言学习总结

本文章转自菜鸟教程 元表:关键字Metatable setmetatable (table.metatable):对指定table设置元表(metatable),如果元表(metatabl...

Lua中的迭代器和泛型for学习总结

Lua中的迭代器和泛型for学习总结 作者:果冻想 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Lua中的迭代器和泛型for学习总结,本文讲解了迭代器和泛型for的基础知识、泛型fo...

Lua学习之coroutine总结

协同程序与线程类似,都是一条执行序列。协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈,局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。线程与协同程序的主要区别在于,一...

《Programming in Lua》学习总结

之前写了一篇,居然误操作删除了,由于只保存了草稿,在百度上找不到快照,也找不到回复的地方,只能再写一篇。这个误操作也是csdn不完善的地方,我本来想点【编辑】,错点到旁边的【删除】,于是我就按住鼠标不...

lua学习总结

简述 Lua是一个很小的编程语言,很多人将其与Python高级语言进行比较。 Lua有以下的特点: (1)纯C语言实现,源码小,可以很好地与C/C++融合。可自行编译,生成静态库。 (2)...
  • zxjzlj
  • zxjzlj
  • 2014年05月22日 18:18
  • 219

【cocos2d-x 学习与应用总结】最近一段时间使用cocos2d-x lua的总结

本文总结了近期使用cocos2d-x lua过程中的一些思考和收获。
  • elloop
  • elloop
  • 2016年12月31日 23:04
  • 480
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lua学习总结
举报原因:
原因补充:

(最多只允许输入30个字)