Lua初识之表和函数-十三


Lua初识之表和函数
-----表和函数放在一起
lib = {}

lib.foo = function(x, y)
    return x + y
end

lib.goo = function( x, y)
    return x - y
end

print(lib.foo(3, 5))  -->  8
print(lib.goo(3, 5))  --> -2
---------------------------


--------使用表构造函数
lib = {
   foo = function(x, y) return x + y end,
   goo = function(x, y) return x - y end
}

print(lib.foo( 3, 5))  -->  8
print(lib.goo( 3, 5))  -->  -2



---------------------------
lib ={}

function lib.foo(x, y)
    return x + y
end

function lib.goo(x, y)
    return x - y
end

print(lib.foo(3, 5))  --> 8
print(lib.goo(3, 5))  --> -2


----------------------------
-----尾调函数
--[[
do  
    function f(x)
        return g(x) --> 此种用法为尾调函数,即返回值调用 其他函数
    end
    
function ff(x)
    g(x)
    return   --> 此种不属于尾掉函数,
end
  
function g(n)
    return n
end

print(f(5))
end
--]]

---->  如上 f()的调用是尾调用,例子中f调用g不会在做任何事情,这种情况

下被调用函数g结束时程序不需要
返回调动者f,所以尾调用之后,程序不需要在栈中保留关于调用者的任何信息,
由于尾调用不需要使用栈空间,那么尾调用递归的层次可以无限制的,不
会导致栈溢出
-------------------------

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值