Lua与JavaScript编程探索
1. Lua语言基础
Lua是一种相对小型的语言,仅有少量的语句、运算符和类型,并且只有一种数据结构——表(table)。变量可以直接存储 nil
、布尔值、数字和字符串,而对于其他类型,仅存储引用。
在Lua中,存在强类型和弱类型的特征。任何值都可以被转换为布尔值( false
和 nil
转换为 false
,其他值转换为 true
),并且字符串和数字在一定程度上可以互换。
Lua函数既可以接受多个值作为参数,也可以返回多个值。这种多返回值的能力在 pcall
函数中得到了显著应用, pcall
是Lua中用于错误检查和处理的首选机制。
Lua变量有三种类型:全局变量、局部变量和表字段。局部变量通过 local
关键字声明,其作用域从声明语句的下一行开始,直到所在代码块结束。这意味着局部函数要实现递归,要么在赋值前声明函数,要么使用 local function
的语法糖形式。
Lua采用静态作用域和动态绑定。表既可以用作经典数组(基于1的数值索引序列),也可以用作字典(键值对集合)。在单个表中可以混合使用数值和非数值索引,语言实现会确保“数组部分”的访问效率。
Lua的标准库实际上是一组表(如 io
、 os
、 math