要点一:function
function fact(n) --就是方法(函数)!!!!!
if n==1 then return n;
else
return n*fact(n-1);--加号和减号只能用number类型
end
end
--Lua里面方法可以复制
fact2=fact--把fact这个方法赋给fact2
--函数作为参数传递
function testFun(tab,thefunction)--参数: 一个taable,一个方法
for k,v in pairs(tab) do
thefunction(k,v)
end
end
tab={key1="val1",key2="val2"}
function function1(k,v)--这个函数可重复调用
print(k..":"..v);
end
--以下是匿名函数,只能调用一次
testFun(tab,
function(k,v)
print(k.."xx"..v)
end
)
要点二:variable
--局部变量一般访问速度比全局变量快,尽量使用局部变量
a=5--全局变量
local b=10--局部变量
function test()
c=5--还是全局变量
local d=6--局部变量
end
test();
print(c);--返回5
print(d);--返回nil--局部变量
--不是方法 (函数) 而是直接执行的代码块
do--凭空的代码块do+end
local a=10
b=11
print(a,b);
end
--多变量同时赋值
a,b=10,20
a,b,c=10,20,"hello"
print(a,b,c) --输出 10 20 hello
a,b=b,a--a,b值互换了 !!!! 直接能互换--lua
print(a,b) --输出 20 10
a,b=10,20,30
print(a,b)--会自动忽略多出来的值 输出 10 20