lua作为嵌入型脚本语言,有着比python快的多的运算速率,在ygocore的编写中lua扮演了至关重要的角色,因此决定了解一下lua,并把学习的一些知识点记录下来。
- lua具有代码块概念。
- 使用“–”进行单行注释,“–[[”“–]]”进行区域注释。
- 逻辑运算具有短路求值特性。
基本数据类型
- 变量不需提前声明,取决于赋值类型。
- 使用type()判断数据类型。
- 赋值bil表示释放变量。
- 没有整型变量。
- 变量默认全局,可加上local关键字声明
- string:类型转换有隐式与显式(用tonumber()和通string())。
- table:table索引可以是本身。
语法结构及函数
-
if…then类型判断。
-
while…do和reprat…until及for…do循环。
-
不支持自运算,以及+=类型运算。
-
break关键字强制退出,但默认没有continue关键字(原因)。
-
没有switch语句。替代方法:
action = { [1] = function (x) print(x) end, [2] = function (x) print( 2 * x ) end, ["nop"] = function (x) print(math.random()) end, ["my name"] = function (x) print("fred") end, } while true do key = getChar() x = math.ramdon() action[key](x) end
-
函数中参数为局部变量(自动创建table类型变量arg储存参数)。
-
函数可以返回多值。
-
常用库:math,io,debug。
-
loadstring(),dofile()处理代码
具体内容详见参考,其余深入研究待更新。