Lua 脚本语法
临时变
临时变量在使用前,需要在代码中进行声明,即创建该变量。
Lua 中的变量全是全局变量,哪怕是语句块或是函数里,除非用 local 显式声明为局部变量。
a = 5 -- 声明全局变量 a
local x = 5 -- 声明局部变量 x
数据类型
Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为 参数传递或结果返回。
数据类型 | 描述 |
---|---|
nil | nil 类型表示一种没有任何有效值,只有值 nil 属于该类,表示一个无效值(在条件表达式中相当于 false)。 |
boolean | 包含两个值:false(假) 和 true(真)。 |
number | 表示双精度类型的实浮点数。 |
string | 字符串由一对双引号或单引号来表示。 |
function | 由 C 或 Lua 编写的函数。 |
userdata | 表示任意存储在变量中的 C 数据结构。 |
thread | 表示执行的独立线路,用于执行协同程序。 |
table | Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是,用来创建一个空表。 |
注释
在编辑脚本的过程中,会对脚本代码进行一些说明,往往这些说名以字符的方式出现,但 Lua 的语法无法识别它们,我们可以通过注释来解决。
单行注释
两个减号是单行注释,也可以将光标置于需要注释的行中,使用键盘的Ctrl+/快速注释,如下图:

local a = 5;
-- 这里将判断是否大于某值
if a > 5 then
print('success')
end
多行注释
使用--[[
和 ]]
对多行代码进行包裹实现注释,如下图:

--[[
des:函数返回两个值的最大值;
param {number} a 参数一,数值类型;
param {number} b 参数二,数值类型;
returns {number} 返回较大的值;
]]
function myFun(a, b)
local result
if a > b then
result = a
else
result = b
end
return result;
end
--[=[
function myFun(a, b)
local result
if a > b then
result = a
else
result = b
end
return result;
end
]=]
在多行注释开头加 - 可快速取消多行注释
---[=[
function myFun(a, b)
local result
if a > b then
result = a
else
result = b
end
return result;
end
]=]
语法检测
编写脚本时,会实时检查语法是否合法,在语法出错行的行号旁将出现图标,鼠标移上去后提示报错内容。多行都出错时,将显示在出错的第一行。解决该行错误后,将显示在出错行的下一行,如下图:

[3:0] 'end' expected near 'en'
表示:第3行的第0个字符的'en'期望输入'end';
代码片段
编写脚本时,编辑器会提供一些关键词、已定义变量、代码片断的提示。点击相应的提示行或移动到相应行使用键盘的Tab或Enter键,可实现代码补全,如下图:

可补全代码的类型
keyword
:lua 语言的关键词、内置方法名、内置常量、库函数;snippet
:lua 语言中常用的代码片断;local
:所有已定义过的变量名;
常用代码片段
- 使用
local
关键词来进行变量的定义。
local x = 1;
- 使用
if
条件结构体来进行条件判断。
local a = 5;
if (a > 5) then;
print('success')
end;
- 使用
for
循环结构体进行语句循环执行。
for i = 1, 10 do
print(i)
end
- 使用
function
函数结构体来定义函数。
function MyFun(a, b)
return a + b
end
print(MyFun(2,3))
标示符
Lua 标示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A
到 Z
或 a
到 z
或下划线 _
开头后加上 0 个或多个字母,下划线,数字(0 到 9)。
最好不要使用下划线加大写字母的标示符,因为 Lua 的保留字也是这样的。
Lua 不允许使用特殊字符如 @
、$
, 和 %
来定义标示符。 Lua 是一个区分大小写的编程语言。因此在 Lua 中 Runoob
与 runoob
是两个不同的标示符。以下列出了一些正确的标示符:
mohd
zara
abc
move_name
a_123
myname50
_temp
j
a23b9
retVal
关键词
关键词为系统中已经被定义使用的特殊词或词组,我们在编写脚中的变量或函数的命名应避开他们,以免造成脚本代码冲突,导致执行失败。
系统关键词
以下列出了 Lua 的保留关键词。保留关键字不能作为常量或变量或其他用户自定义标示符:
and
break
do
else
elseif
end
false
for
function
if
in
local
nil
not
or
repeat
return
then
true
until
while
goto
项目关键词
以下列出了我们在对设备变量或内部变量进行读写操作,以及一些特殊函数操作时定义的关键词:
var
get
set
var.get()
var.set()
一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION、 _add 等)被保留用于 Lua 内部全局变量。
运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua 提供了以下几种运算符类型:
算术运算符
- 加法(+)
- 减法(-)
- 乘法(*)
- 除法(/)
- 取余(%)
- 乘幂(^)
- 负号(-)
local a = 10
local b = 20
print(a + b) -- 输出结果为 30
local a = 10
local b = 20
print(a - b) -- 输出结果为 -10
local a = 10
local b = 20
print(a * b) -- 输出结果为 200
local a = 10
local b = 20
print(a / b) -- 输出结果为 0.5
local a = 10
local b = 20
print(b % a) -- 输出结果为 0
local a = 10
print(a^) -- 输出结果为 100
local a = 10
print(-a) -- 输出结果为 -10
关系运算符
- 等于(==)
- 不等于(~=)
- 大于(>)
- 小于(<)
- 大于等于(>=)
- 小于等于(<=)
local a = 10
local b = 20
if a == b then
print('a 等于 b')
else
print('a 不等于 b')
end
local a = 10
local b = 20
if a ~= b then
print('a 不等于 b')
else
print('a 等于 b')
end
local a = 10
local b = 20
if a > b then
print('a 大于 b')
else
print('a 小于等于 b')
end
local a = 10
local b = 20
if a < b then
print('a 小于 b')
else
print('a 大于等于 b')
end
local a = 10
local b = 20
if a >= b then
print('a 大于等于 b')
else
print('a 小于 b')
end
local a = 10
local b = 20
if a <= b then
print('a 小于等于 b')
else
print('a 大于 b')
end
逻辑运算符
- 与(and)
- 或(or)
- 非(not)
local a = true
local b = false
print(a == true and b == false) -- 返回true
if a == true and b == false then
print('success')
end
local a = true
local b = false
print(a == true or b == false) -- 返回true
if a == true or b == false then
print('success')
end
local a = true
local b = false
print(not(a and b)) -- 返回true
print(not(a or b)) -- 返回false
if not(a and b) then
print('success')
end
其他运算符
- 字符串连接(..)
- 一元运算符(#)
local a = 'Hello '
local b = 'Lua!'
print(a .. b) -- 输出结果为 'Hello Lua!'
local a = 'Hello Lua!'
print(#a) -- 输出结果为 10
快捷键
在脚本编辑器中快捷键操作如下:
快捷方式 | 功能应 用 | 快捷方式 | 功能应用 |
---|---|---|---|
Ctrl + A | 全选 | Ctrl + X | 剪切 |
Ctrl + C | 复制 | Ctrl + V | 粘贴 |
Ctrl + Z | 撤销 | Ctrl + Y | 恢复 |
Ctrl + F | 查找 | Ctrl + H | 查找 |
Ctrl + / | 注释 | ||
Alt + ↑ | 向上移动一行 | Alt + ↓ | 向下移动一行 |
Shift + Alt + ↑ | 向上复制一行 | Shift + Alt + ↓ | 向下复制一行 |