Lua -<1>- Chunks & 全局变量

  • 注: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) 
--]] 

你可能感兴趣的:(Lua -<1>- Chunks & 全局变量)