变量
局部变量用local定义,可以平行赋值;没有加local的都是全局变量
local a ,b = c ,d
函数定义
function foo(argv)
...
end
这里我们还可以在函数内部定义匿名函数(闭包的概念)
function foo(argv)
...
function inner(argv)
...
end
end
函数还可以有多个返回值,并且,可以平行赋值
function mulReturn(argv1,argv2)
return argv1,argv2
end
local a,b = mulReturn(1,2) -- 平行赋值
表
Lua表既是哈希表,也是数组。可以将数组看作是以下标对应的哈希表。
定义表:!任何类型的值除了nil都可以作为表项的key,如函数地址
local hash = { a=1,b="str","hello" }
function foo1 end
function foo2 end
hash[foo1]=foo2
访问表的成员
hash.a = 1
hash.b = "str"
hash["b"] = "str"
hash[1] = "hello" --注意这里
枚举表:
for key,val in pairs(hash) do
print(key,"=>",val)
end
__DATA OUTPUT__
1 => "hello"
a => 1
b => "str"
function:001234e5 => function:0012413e
将某个键设置为nil即可删除该项