• 友链

  • 首页

  • 文章归档
h u a n b l o g
h u a n b l o g

欢

HI,Friend

04月
20
Lua

Lua模块和包

发表于 2022-04-20 • 字数统计 878 • 被 702 人看爆

函数require

用于加载模块
local m = require('math')       --加载数学模块

-- 另一种写法
local modname = 'math'
local m = require(modname)

首先,函数require在表package.loaded中检测模块是否已被加载,如已加载,则返回相应的值,否则搜索具有指定模块名的Lua文件,如找到,就用函数loadfile将其加载,如果找不到,就搜索相应名称的C标准库。如果找到C标准库,则使用底层函数package.loadlib进行加载

编写模块

创建一个表并将所有需要导出的函数放入其中,最后返回这个表。
local M = {}    --模块
--创建一个新的复数
local function new(r, i)
    return {r=r, i=i}
end

M.new = new     --把'new'加到模块中
-- 定义常量 'i'
M.i = new(0,1)

function M.add(c1, c2)
    return new(c1.r + c2.r, c1.i + c2.i)
end


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

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

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

return M


--就可以使用require来加载他
local m = require"M"
--调用模块方法
m.add(1, 2)

分享到:
Lua迭代器和泛型for
Lua编译和执行错误
  • 文章目录
  • 站点概览
欢

网红 欢

你能抓到我么?

Email RSS
看爆 Top5
  • mac系统版本与Xcode版本有冲突 4,080次看爆
  • JAVA_HOME环境配置问题 3,730次看爆
  • AssetBundle使用 3,499次看爆
  • VSCode配置C++开发环境 3,257次看爆
  • Lua反射 3,133次看爆

Copyright © 2025 欢 粤ICP备2020105803号-1

由 Halo 强力驱动 · Theme by Sagiri · 站点地图