lua学习笔记之编译、运行及错误
1、编译
dofile和loadfile加载文件。loadfile仅仅编译代码块,并且返回编译后的代码块作为函数。
loadfile在出错时返回nil和错误信息,并且可以加载一次,调用结果多次。
load与loadfile相似,从函数或者字符串读取代码块,不是从文件
f = load("i = i + 1")
i = 0
f(); print(i)
f(); print(i)输出:
1
2
加载并且调用使用load(s)(),如果出现错误,会返回nil,并且返回错误信息"attempt to call a nil value",如果需要详细的错误信息,可以使用assert(load(s))()
load没有词法作用域,使用全局作用域的。
i = 32
local i = 0f = load("i = i + 1; print(i)")
g = function() i = i + 1; print(i) end
f()
g()输出:
33
1
lua将任意独立的代码块视为匿名变参函数的函数体。比如load("a=1")相当于
function (...) a = 1 end
2、预编译代码
使用luac来预编译代码。比如 lua -o prog.lc prog.lua,然后执行使用lua prog.lc
load和loadfile接受预编译代码。
3、错误
使用error函数来抛出错误。
assert函数也可以抛出错误,第一个参数不为false,则返回这个参数,否则会抛出错误。第二个参数表示错误信息。
4、错误处理及异常
处理错误使用pcall函数。
lua学习笔记之编译、运行及错误相关推荐
- DuiLib学习笔记1.编译运行demo
c++中皮肤问题比较麻烦,MFC自带的太难用.DirectUI界面库就比较强大了,之前像skin++之类的基于DirectUI收费昂贵.DuiLib是基于DirectUI的界面库,可以将用户界面和处理 ...
- Lua学习笔记6:C++和Lua的相互调用
曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有. 新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项目啦,只是为什么 ...
- Lua 学习笔记(一)
Lua学习笔记 1.lua的优势 a.可扩张性 b.简单 c.高效率 d.和平台无关 2.注释 a.单行注释 -- b.多行注释 --[[ --]] 3.类型和 ...
- 微信小程序连接物联网(二):NodeMCU Lua学习笔记
索引 这是用微信小程序遥控开门的系列文章,具体微信小程序连接物联网的代码在第三章提及. 微信小程序连接物联网(一):初始化ESP8266 NodeMCU 微信小程序连接物联网(二):NodeMCU L ...
- Makefile学习笔记07|编译静态库并通过ifeq语句
Makefile学习笔记07|编译静态库并通过ifeq语句 希望看到这篇文章的朋友能在评论区留下宝贵的建议来让我们共同成长,谢谢. 这里是目录 本篇与上一篇有较多联系,有兴趣的可以先看上一 ...
- java中预编译是啥意思_JAVA学习笔记预编译
JAVA学习笔记预编译 (2011-07-30 02:36:17) 标签: 杂谈 第顺次运行jsp时jsp将被改换成servlet(第顺次工夫较长,而尔后就会快许多) 搭配好的利用过程能够穿越设置js ...
- Makefile学习笔记06|编译动态链接库
Makefile学习笔记06|编译动态链接库 希望看到这篇文章的朋友能在评论区留下宝贵的建议来让我们共同成长,谢谢. 这里是目录 静态链接与动态链接 链接分为两种:静态链接.动态链接. 静 ...
- php txtsql 说明,PHP学习笔记(2)txtSQL文档错误
PHP学习笔记(2)txtSQL文档错误 次阅读 在使用txtSQL的过程中,发现一处帮助文档错误. 在使用altertable命令改变表名称时,发现如果按照帮助文档所说,使用如下代码无法改变表的名称 ...
- lua 学习笔记---游戏开发第一步
lua 学习笔记-从数组开始 数组 数组大小范围不一定需要在声明是确定,可以改变 一维数组 例 > array = {"Lua", "lualu"} &g ...
最新文章
- 链表问题11——两个单链表相交的系列问题(四):总结
- 剑指offer:把数组排成最小的数
- 学习 慕课网 PHP工程师学习计划--我的笔记汇总
- Python练习题:如何将多个小字符串拼接成一个大的字符串
- SAP UI5 Web Component里如何自定义CSS style
- 【Linux】- 守护进程的启动方法
- 基于jQuery的对象切换插件:soChange 1.5 (点击下载)
- 微服务实现事务一致性实例
- SVG 与 HTML5 的 canvas 相比较:
- edius隐藏快捷键_EDIUS 常用快捷键
- Python 操作pdf文件-合并操作 (三)
- 【数据挖掘】使用R语言进行聚类分析
- blender基本翻译+快捷键
- pytorch中dim的含义及相关做法
- 阅读文献Performance Gains in V2X Experiments Using Distributed Simulation in the Veins Framework
- 基于JAVA准妈妈孕期交流平台计算机毕业设计源码+系统+lw文档+部署
- 基于JAVA教学质量测评系统计算机毕业设计源码+系统+lw文档+部署
- golang 数组组合成最小的整数_整数数组拼成一个最小或最大的数
- 【AE表达式】300多个人名正从宇宙中飞来……
- 最新传智播客黑马训练营JAVAEE49期培训全套
热门文章
- java第10次作业 计科1501 张鹏
- Android 开发学习随笔
- vim编辑器高级应用
- 如何提升个人专业能力
- Visual Studio附加到进程调试
- java 数据库连接池 实例_java数据库连接池和数据库连接示例
- consul 日志配置_微服务:服务注册发现+ API 网关+配置中心+服务跟踪+服务熔断...
- python中文读音ndarray-Python开发:NumPy学习(一)ndarray数组
- python画图三维-对python mayavi三维绘图的实现详解
- python代码大全下载-最全Python算法实现资源汇总!