Lua 学习笔记(4)编译、执行与错误

Lua 学习笔记(4)编译、执行与错误

《Lua程序设计》


编译

  • dofile:执行文件
  • loadfile:加载lua代码块,只编译,不加载,结果为一个函数返回。
function dofile(filename)
	local f = assert(loadfile(filename))
	return f()
end
  • 如果需要多次运行一个文件,只需调用一次loadfile,多次调用返回结果即可。
  • loadstring:从一个字符串中读取代码。
f = loadstring("i = i + 1")  --f 是一个函数

i = 33
local i = 0
f(); print(i)	-- 34,处理的是全局的i
f(); print(i)	-- 35

g = function() i = i + 1 end
g(); print(i)	-- 1,处理的是局部i
  • load:读取器函数(reader function),可以分多次返回一个程序块,会反复调用,直到返回nil。一般只有程序块不在文件中,或程序快过大无法放入内存时使用。

检查某一平台师傅支持动态链接机制:运行print(package.loadlib("a","b")),观察其结果,如果不存报告在指定文件,那么就说明该平台有这机制。


错误

print "enter a number:"
n = assert(io.read("#number"),"错误输入!")

-- pcall: protected call, 受保护的调用
if pcall(function ()
	--受保护的代码
end) then
	--常规代码
else
	--错误处理的代码
end

print(debug.traceback)	--构建错误消息调用栈
print(debug.debug())	--检查错误原因
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值