lua 基本函数dofile loadfile loadstring

原文地址http://www.freecls.com/a/2712/15

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


总结

1.本文对lua加载外部代码做简单的介绍,如果有疑问可以给我留言
2.lua的版本为5.1,运行环境centos7 64位
3.原文地址http://www.freecls.com/a/2712/15

猜你喜欢

转载自blog.csdn.net/freecls/article/details/80265915