概念:在一个函数A中使用return返回另一个函数B(B函数调用是A函数的最后一个动作)。
尾调用不占用“堆栈”空间,不会出现“栈溢出”,可以起到优化存储空间的作用。
function FA()
return math.abs(-1)
end
function FB()
return FA()
end
print(FB())
--->
1
function Fun(num)
if num > 0 then
print(num)
return Fun(num-1)
else
return "END"
end
end
print(Fun(5))
--->
5
4
3
2
1
END
function FunA()
return FunB()
end
function FunB()
return 1,2
end
a,b = FunB()
print(a)
print(b)
function FunC()
return (FunD())
end
function FunD()
return 1,2
end
c,d = FunC()
print(c)
print(d)
--->
1
2
1
nil