本文主要是介绍dofile、loadfile、loadstring,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1.用法
2.区别
3.示例
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 = 0dofile("lualib1.lua")print(i)
[root@bee lua]# lua dofile.lua
0
loadfile
[root@bee lua]# cat lualib2.lua
function foo()i = 8end
[root@bee lua]# cat loadfile.lua
i = 1local f = loadfile("lualib2.lua")f()foo()print("loadfile: ", i)
[root@bee lua]# lua loadfile.lua
loadfile: 8
这篇关于dofile、loadfile、loadstring的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!