lua的packages实现

complex.lua
local P = {}                    --使用局部变量临时储存对象
P.i = {r=0, i=1}                --初始化对象参数

--packages的私有成员,只要使用local声明一个方法即可
local function checkComplex(c)            
    if not ((type(c) == "table") and tonumber(c.r) and tonumber(c.i)) then
    error("bad complex number", 3)
    end
end

function P.new(r, i)
    return {r=r, i=i}
end

function P.add(c1, c2)
    checkComplex(c1);
    checkComplex(c2);
    return P.new(c1.r + c2.r, c1.i + c2.i)
end

function P.sub(c1, c2)
    return P.new(c1.r - c2.r, c1.i - c2.i)
end

function P.mul(c1, c2)
    return P.new(c1.r*c2.r - c1.i*c2.i, c1.r*c2.i + c1.i*c2.r)
end

function P.inv(c1, c2)
    local n = c.r^2 + c.i^2
    return P.new(c.r/n, -c.i/n)
end

return P                        --记得返回该对象本身

lua_main.lua
complex = require "complex"        --使用文件作为对象的返回值
c = complex.add(complex.i, complex.new(10, 20))
print(c.i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e421083458

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值