--[[
C#求阶乘
int fact(int n){
if(n==1)
return n;
else
return n*fact(n-1);
}
--]]
--函数定义通用function,不必有返回类型
--现学到的function、if、for都有end,其他待确认
function fact(n)
if n==1 then
return n
else
return n*fact(n-1)
end
end
print(fact(3))
fact2=fact
print(fact(3))
>lua -e "io.stdout:setvbuf 'no'" "table.lua"
6
6
>Exit code: 0
加上 [local] 后,该函数当做局部函数使用,类似局部变量
function testFun(tab,fun)
for k,v in pairs(tab) do
fun(k,v)
end
end
mytab={key1="value1",key2="value2"}
function myfun(k,v)
print(k..":"..v)
end
testFun(mytab,myfun)
--匿名方法
testFun(mytab,
function(k,v)
print(k..":"..v)
end)
>lua -e "io.stdout:setvbuf 'no'" "table.lua"
key1:value1
key2:value2
key1:value1
key2:value2
>Exit code: 0
do end方法块直接执行,不必调用
do
a=10
print(a)
end
除了else,其他的都要跟then
a=10
if a>5 then
print(a)
else if a>3 then
print(a)
else
print(a)
end
大家还有什么问题,欢迎在下方留言!