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程序设计Programming in Lua   果冻想-Lua 语法入门 源码   the implementation of lua 50 英文原版 中文翻译   Lua源码鉴...
  • lodypig
  • lodypig
  • 2016年12月09日 21:08
  • 1209

xLua学习(一)

xLua作为企鹅这个大厂开源出来的unity热更新技术,从面世就受到了广泛的关注,他的“开发使用C#,运行使用C#,有bug了下发Lua补丁替代”让我很感兴趣。非常适合比如已经开发大半使用C#开发的项...
  • qq_36386954
  • qq_36386954
  • 2017年03月21日 17:19
  • 650

如何学习Lua编程

转自:http://lua.javaeye.com/blog/456531 最近迷上了使用Lua写一些方便的小程序,也看了一些关于lua的文档。发现不少人经常问一些很常见的问题,感觉好像还没有找到学习...
  • jphaoren
  • jphaoren
  • 2010年06月16日 02:04
  • 1624

Lua初学者入门要掌握的资料

Lua中国开发者同盟 http://www.luaer.cn/ 初识Lua,搭建环境和第一个程序 . http://blog.csdn.net/kingsollyu/article/detail...
  • zhangyulin54321
  • zhangyulin54321
  • 2013年10月15日 19:15
  • 1148

JAVA 学习 自我总结

学习总结: 孔子曰学而时习之 不亦悦乎 。学习了新的东西,一定要及时练习和总结,并多次回想记忆,这样才能将知识记忆的牢固; 之前我学习东西只知道贪多,想一口吃一个胖子;但是每次都是事倍功半,这样又...
  • u010582345
  • u010582345
  • 2016年04月08日 23:58
  • 430

十月学习总结 大学的第一个月

来到烟台两个月了,而真
  • zp___waj
  • zp___waj
  • 2014年11月03日 11:34
  • 2971

2017年度学习总结

2017上半年,移动平台游戏开发基础,学习了灵活的JavaScript语言,也做了几个像模像样的游戏,JQuary库和其他库的的引用也很受益。想想原来,每种框架都想入门试试,可忽略了开发者最基本的底层...
  • Prototype___
  • Prototype___
  • 2017年12月31日 07:09
  • 384

Hibernate学习总结(一)

1、什么是Hibernate Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架(ORM,对象关系映射 Object Relationship mapper) ...
  • u012750846
  • u012750846
  • 2015年09月07日 15:36
  • 811

程序员的学习总结

数据结构+算法 网络编程 分布式框架
  • very_loong
  • very_loong
  • 2017年09月16日 10:44
  • 251

Lua总结一

值和类型(Values and Types)Lua是一门动态类型语言,这意味着变量没有类型,只有值有类型。语言没有类型定义,所有值携带自己的类型。 Lua中所有的值都是一等公民,这意味着所有的值都可...
  • huangjin2012
  • huangjin2012
  • 2015年02月28日 21:38
  • 532
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lua学习总结
举报原因:
原因补充:

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