函数定义:
[修饰符] function(函数定义关键字) 函数名 (参数1,参数2,...)
函数体
end(函数结束关键字)
1. 函数可以作为数据赋值
2. 函数可以作为参数传递
-----------------------------------------------
lua 函数可以返回多个值
函数定义:
[修饰符] function(函数定义关键字) 函数名 (参数1,参数2,...)
函数体
end(函数结束关键字)
1. 函数可以作为数据赋值
2. 函数可以作为参数传递
-----------------------------------------------
lua 函数可以返回多个值
function fact(i)
ret = 0
if i<0 then
print("小于0的阶乘无意义")
elseif i==0 then
ret=1
else
ret = i*fact(i-1)
end
return ret
end
尝试运行 这种情况可以正常输出:1
fact2 = fact
fact = nil
print(fact2(0))
但是,算1的阶乘的时候就不行了,所以lua代码是边编译,边执行的。fact2与fact函数拥有相同的解释,所以,当去找fact(1-1)的时候,发现fact已经被清空了,所以无法继续执行。
fact2 = fact
fact = nil
print(fact2(1))
table分为:1.字典型 2.数组型
注:
字典型中,key值默认为字符串,在初始化的时候,tab={key1="val1"},其中key1不需要加“”,因为已经确定为字符串;同样取值时,使用tab.key1,也不需要加“”。(如果使用[]符号取值,则需要加tab["key1"])
数组型中,只能用[x],x为数字索引。
type()函数返回值为字符串
即使没有声明变量,变量也可以使用(即取值),只是数值为nil
print("Hello world")
print("Hello world")
print("Hello world")
print(