简介
lua文件是以字符串和块的方式存在的。
而在lua中,加载代码文件,通常会见到require、dofile、loadfile等函数。
require
在加载一个.lua文件时,require会先在package.loaded中查找此模块是否存在,如果存在,直接返回模块。
如果不存在,则尝试加载模块文件,成功则返回true, 否则异常。loadfile
loadfile:编译代码,将整个模块文件当成一个函数返回,但是不执行代码。
如果要使用模块文件中的对象和值,需要调用一下返回的函数。dofile
dofile:读入代码文件并编译执行。每调用dofile一次,都会重新编译执行一次。dofile是对loadfile的一次包装。
验证示例
示例代码:
a.lua
vv = "v1"
function test()
print("Test")
end
使用a.lua模块
local func=loadfile("a.lua")
print(func) -- function.
func();
print(vv)
test();
local func=require('a')
print(func) -- true
print(vv)
test();
local func = dofile("a.lua")
print(func) -- nil
print(vv)
test();