Lua 基本语法
注释
Lua
支持两种注释模式: 单行注释与多行注释:
- 单行注释: 使用
--
以注释单行内容. - 多行注释: 使用
--[[
与--]]
以注释多行内容.
1 2 3 4 5 6 |
|
标识符
Lua
中的标识符是用于定义一个变量, 函数, 表, 模块等名称的符号. 标识符的命名遵循以下规则:
- 标识符必须以字母 (
a
到z
,A
到Z
), 或下划线_
开头后加上0个或多个字母,下划线,数字 (0
到9
). Lua
是大小写敏感的,variable
和Variable
是不同的标识符.- 标识符不能包含特殊字符例如
@
,$
, 与%
等. - 标识符不能以
Lua
中的保留关键字开头.
Lua 中的关键字
Lua
包含以下关键字, 不能用于作为标识符:
and | break | do | while |
elseif | end | false | for |
function | if | in | local |
nil | not | or | repeat |
return | then | true | until |
while |
以下是一些标识符命名的示例:
1 2 3 4 5 6 7 8 9 10 11 |
|
变量
Lua
支持在一行内声明多个变量与交换变量:
1 2 3 4 5 6 7 8 9 10 |
|
当变量数量与值不匹配时, 缺少的值所对应的变量将会赋值为 nil
, 多余的值将被忽略:
1 2 3 4 5 6 7 |
|
作用域
Lua
中默认情况下定义的变量与函数都是全局的. 全局变量与全局函数在整个程序中的任何位置都可以被访问与修改.
Info
变量与函数的作用域遵循相同的规则, 以下将以变量为例进行说明.
默认情况下, 变量总是被认为是全局的. 全局变量不需要显式声明, 给一个变量赋值后即创建了这个全局变量. 访问一个未初始化的全局变量并不会报错, 其得到的结果将会是 nil
.如果需要删除一个全局变量, 只需要将这个全局变量赋值为 nil
:
1 2 3 4 5 |
|
使用 local
关键字可以声明局部变量. 局部变量只在其被声明的代码块内有效. 代码块可以是函数体, 控制结构例如 if
, while
等或一个 do
语句块.当代码块结束时其中的局部变量将会被销毁:
1 2 3 4 5 6 7 8 9 10 |
|
当局部变量和全局变量同名时, 在其作用域内, 局部变量会屏蔽全局变量:
1 2 3 4 5 6 7 8 9 10 11 |
|
在实际的 Lua
开发中, 除非必要建议优先选择局部变量而非全局变量. 过多的全局变量将会污染全局命名空间, 代码的可维护性也会降低.