lua随笔记录
来源:互联网 发布:iphone数据流量开关 编辑:程序博客网 时间:2024/06/06 02:45
loadstring(),从一个串中读入chunk,例如:f=loadstring("i = i + 1"),此时f相当于一个函数,这句代码相当于
f = function() i = i+1 end
loadstring功能很强大,但需要小心使用。
loadfile 和 loadstring 都不会抛出错误,如果发生他们将返回nil加上错误信息
loadstring编译的时候不关心词法范围:
local i = 0
f = loadstring("i = i +1")
g = function() i = i+1 end
这个例子中,g使用局部变量i,但f使用全局变量i,如果没有定义i那么调用f()的时候会报错,loadstring总是在全局环境中编译他的串。
pcall 在保护模式( protected mode)下执行函数内容,同时捕获所有的异常和错误。
若一切正常, pcall 返回 true 以及“被执行函数”的返回值;否则返回 nil 和错误信息。
错误信息不一定仅为字符串(下面的例子是一个 table),传递给 error 的任何信息都
会被 pcall 返回:
local status, err = pcall(function () error({code=121}) end)
print(err.code) --> 121
这种机制提供了强大的能力,足以应付 Lua 中的各种异常和错误情况。我们通过 error
抛出异常,然后通过 pcall 捕获之。
local statue,err = pcall(function() error({code=121}) end)
local params = {level = 12}
local calc = string.gsub("$level*12", "%$(%w+)", params)
local r, v = pcall(loadstring("local vv="..calc..";return vv"))
- lua随笔记录
- 随笔记录
- 随笔记录
- 随笔记录
- 随笔记录
- 随笔记录
- 随笔记录
- 随笔记录
- 随笔记录.....
- 随笔记录
- 随笔记录
- 随笔记录
- 随笔记录
- 随笔记录
- 随笔记录
- 随笔记录
- 记录随笔
- 随笔记录
- 【Windows学习】Windows核心编程-字符编码
- php Undefined index和Undefined variable的解决方法
- request和response复习总结
- c++ 多线程 事件EVENT
- 公共注意项
- lua随笔记录
- 《数据结构》实验一:VC编程环境灵活应用
- hdu1584 深搜水题
- 设计模式【抽象工厂模式】
- 软件包 java.text 的描述
- android 内存优化
- 无法访问 您可能没有权限使用网络资源
- android单元测试
- Android:自定义ImageView实现缩放,回弹效果