lua使用另一个lua脚本文件的三种方式,同时注意lua表示模块路径和表示文件路径的表示法
**** 1 用require 导入标准的lua模块,模块可以为用c语言写的模块,也可以是lua语言写的模块
模块文件:appMods/demoMod.lua
demoMod.lua须符合模块定义的标准
local myMod ={} --lua 模块定义,底层其实就是table
function myMod.echo() --定义模块里的功能
print("hello,myMod")
end
return myMod
要导入appMods/demo.lua的 另一个文件appMods/app.lua
local m = require "appMods.demoMod" --这里用模块路径表示法,目录层级的分隔符是:.符,而不是/ ,模块不用lua后缀,m接收被导入的模块,
m.echo() --调用 导入的模块的echo函数
**** 2 . 使用 dofile 执行另一个文件里的lua代码,可以不是模块文件标准的lua代码,文件要带后缀lua,如要执行的代码文件: appSnippets/task.lua
dofile("appSnippets/task.lua") ---执行,用文件路径表示法: 目录的分隔符为:/ ,而不是. ,容易和模块导入时的目录分隔符混肴
如果要执行的文件不存在,报错误,
***** 3 . 使用 Loadfile ,加载外部文件的lua脚本,加载的文件里的代码,相当于封装为一个匿名的函数,函数体就是加载的文件里的代码,appSnippets/toLoad.lua
local t = laodfile("appSnippets/toLoad.lua") ---文件路径表示法,目录分隔符/,如果文件找不到,也不会报错,这时t=nil
t() ==执行已加载成功的文件里的代码,如果加载不成功,这一步会报错,因为把nil当成函数调用。
浙公网安备 33010602011771号