目录
1.用法
dofile("filename")
loadfile("filename")
loadstring("lua statements")
2.区别
dofile先编译,然后运行;loadfile只编译,不运行,编译之后返回一个函数,通过调用这个函数运行。
dofile出错会抛出错误信息,loadfile和loadstring都不会抛出错误,而是返回nil+错误信息
dofile有边界效应,loadfile和loadstring没有边界效应
3.示例
dofile
[root@bee lua]# cat lualib1.lua
i = 7
[root@bee lua]# cat dofile.lua
local i = 0
dofile("lualib1.lua")
print(i)
[root@bee lua]# lua dofile.lua
0
loadfile
[root@bee lua]# cat lualib2.lua
function foo()
i = 8
end
[root@bee lua]# cat loadfile.lua
i = 1
local f = loadfile("lualib2.lua")
f()
foo()
print("loadfile: ", i)
[root@bee lua]# lua loadfile.lua
loadfile: 8