- 注:lua5.0以上版本去除了table.getn方法,可以用#tableName代替
- Chunk是一系列语句,Lua 执行的每一块语句,比如一个文件或者交互模式下的每一行都是一个Chunk。
每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用 ; 分开
a = 1 b = a*2 -- ugly, but valid
- 一个 Chunk 可以是一个语句,也可以是一系列语句的组合,还可以是函数,Chunk 可以很大,在 Lua 中几个MByte的Chunk是很常见
- 另一个连接外部 Chunk 的方式是使用 dofile 函数,dofile 函数加载文件并执行它.假设有一个文件:
-- file 'lib1.lua'
function norm (x, y)
local n2 = x^2 + y^2
return math.sqrt(n2)
end
function twice (x)
return 2*x
end
在交互模式下:
> dofile("lib1.lua") -- load your library
> n = norm(3.4, 1.0)
> print(twice(n)) --> 7.0880180586677
-i 和 dofile在调试或者测试Lua代码是很方便
- 全局变量
- 全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过结果是 nil
print(b) --> nil
b = 10
print(b) --> 10
如果你想删除一个全局变量,只需要将变量赋值为 nil
b = nil
print(b) --> nil
这样变量 b 就好像从没被使用过一样.换句话说, 当且仅当一个变量不等于 nil 时,
这个变量存在。
- 词法约定
- 标识符:字母或者下划线开头的字母、下划线、数字序列。最好不要使用下划线加大写字母的标识符,Lua保留字也是这样
and break do else elseif
end false for function if
in local nil not or
repeat return then true until
while
注意:Lua 是大小写敏感的.
- 注释
注释:单行注释:--
多行注释:--[[ --]]
--[[
print(10) -- no action (comment)
--]]