欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-14 11:00:07
...

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())	--检查错误原因
相关标签: lua

上一篇: 面试算法准备

下一篇: Lua学习笔记