lua 基本函数dofile loadfile loadstring

dofile([filename])

如果提供了filename则打开读取里面内容并以代码块方式执行,没提供则从标准输入stdin读取并执行。
如果报错,错误会上传到到调用者(运行在非保护模式)

例子

新建aa.lua

--aa.lua
url = 'www.freecls.com'
local name = '沧浪水'

执行代码

dofile('aa.lua')
print(url)
print(name)

--结果
--[[
www.freecls.com
nil
--]]
--可以看出局部变量在外部不可见


loadfile([filename])

如果提供了filename则打开读取里面内容并返回函数,没提供则从标准输入stdin读取并返回函数。

例子

还是加载上面的aa.lua

local func = loadfile('aa.lua')
print(url,name)
--nil	nil

func()
print(url,name)
--www.freecls.com	nil

总结: 从例子可以看出跟dofile唯一的区别就是loadfile以函数形式返回并需要手动执行


loadstring(str)

str为代码块字符串,跟loadfile很像,只是它以字符串形式来加载

例子

local func = loadstring("url = 'www.freecls.com'\nlocal name='沧浪水'")
print(url,name)
--nil	nil

func()
print(url,name)
--www.freecls.com	nil


上一篇: lua assert collectgarbage
下一篇: lua ipairs pairs
作者邮箱: 203328517@qq.com