Lua的方法的一些特性--lua和android
学习lua不得不了解其方法或者说语法的特性,比如:
多值返回
function maximum (a) local mi = 1 -- maximum index local m = a[mi] -- maximum value for i,val in ipairs(a) do if val > m then mi = i m = val end end return m, mi end
print(maximum({8,10,23,12,5})) --> 23 3
可变参数
function g (a, b, ...) end 或者 function g (...) end CALL PARAMETERS g(3) a=3, b=nil, arg={n=0} g(3, 4) a=3, b=4, arg={n=0} g(3, 4, 5, 8) a=3, b=4, arg={5, 8; n=2}
尾调用
感觉类似递归,递归是调用自己,尾调用调的函数不一定是自己
感觉类似递归,递归是调用自己,尾调用调的函数不一定是自己 function foo (n) if n > 0 then return foo(n - 1) end end function f (x) // do something at x return g(x) end
尾调用不需要使用栈空间(自身栈控件),那么尾调用递归的层次可以无限制的,而不用担心栈溢出。
function f (x) // 不是尾调用 g(x) return -- must return function return g(x) + 1 -- must do the addition return x or g(x) -- must adjust to 1 result return (g(x)) -- must adjust to 1 result end
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。