Lua中的loadfile、dofile、require详解
1.loadfile——只编译,不运行
loadfile故名思议,它只会加载文件,编译代码,不会运行文件里的代码。
比如,我们有一个hellofile.lua文件:
function hehe()
print(“hello”);
end
这个文件里有一句代码,和一个函数。试试用loadfile加载这个文件,如下代码:
print("end");
输出结果如下:
如果说loadfile会执行文件里的代码的话,那么,应该会输出hello字符串的。
结果表明,它是不会执行代码的。
2.dofile——执行
很明显,dofile就是会执行代码的家伙了,如下代码:
print("end");
输出结果如下:
[LUA-print] end
这里有点尴尬,文件路径我用了绝对路径,因为dofile在Coco Code IDE里使用相对路径会找不到文件(即使使用了addSearchPath)
不过没关系,不影响本文的内容。
3.require——我只执行一次
require和dofile有点像,不过又很不一样,require在第一次加载文件的时候,会执行里面的代码。
但是,第二次之后,再次加载文件,则不会重复执行了。换句话说,它会保存已经加载过的文件,不会重复加载。
测试代码如下:
require("hellofile.lua");
end
print("end");
为了说明这种情况,我刻意调用了两次require,输出结果如下:
[LUA-print] end
和我们说的一样,调用了两次,但是代码只执行了一次。
如果这里换成dofile,则会输出两次hello字符串。
Lua中的loadfile、dofile、require详解的更多相关文章
- Lua中的loadfile,dofile,require使用,最后还有调试
1.loadfile---只编译,不运行. loadfile编译代码成中间码并且返回编译后的chunk作为一个函数,而不执行代码:另外loadfile不会抛出错误信息而是返回错误代号. loadstr ...
- 前端后台以及游戏中使用Google Protocol Buffer详解
前端后台以及游戏中使用Google Protocol Buffer详解 0.什么是protoBuf protoBuf是一种灵活高效的独立于语言平台的结构化数据表示方法,与XML相比,protoBuf更 ...
- Node.js中环境变量process.env详解
Node.js中环境变量process.env详解process | Node.js API 文档http://nodejs.cn/api/process.html官方解释:process 对象是一个 ...
- PHP 中 16 个魔术方法详解
PHP 中 16 个魔术方法详解 前言 PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __constru ...
- Nmap在实战中的高级用法(详解)
@ 目录 Nmap在实战中的高级用法(详解) Nmap简单的扫描方式: 一.Nmap高级选项 1.查看本地路由与接口 2.指定网口与IP地址 3.定制探测包 二.Nmap扫描防火墙 1.SYN扫描 2 ...
- Linux中/proc目录下文件详解
转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...
- JQuery在循环中绑定事件的问题详解
JQuery在循环中绑定事件的问题详解 有个页面上需要N个DOM,每个DOM里面的元素ID都要以数字结尾,比如说 ? 1 2 3 <input type="text" nam ...
- C#中的Linq to Xml详解
这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml.查询并修改xml.监听xml事件.处理xml流等内容,需要的朋友可以参考下 一.生成Xml 为了能 ...
- 批处理中的echo命令图文详解
批处理中的echo命令图文详解 1. Echo 显示当前ECHO的状态:ECHO ON 或者ECHO OFF 2. ECHO ON 将ECHO状态设置为ON,将显示命令行,也就是前面的C:\>类 ...
- C#中的预处理器指令详解
这篇文章主要介绍了C#中的预处理器指令详解,本文讲解了#define 和 #undef.#if.#elif.#else和#endif.#warning和#error.#region和#endregio ...
随机推荐
- HDUOJ-----(1072)Nightmare(bfs)
Nightmare Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- ADO,OLEDB,ODBC,DAO,RDO的区别说明
http://www.jb51.net/article/31286.htm http://wenku.baidu.com/link?url=D7iis1tmkyXTCqjsezsvYtYHWG8jK- ...
- Android学习系列(18)--App工程结构搭建
本文算是一篇漫谈,谈一谈关于Android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构. 关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的 ...
- 标头“Vary:Accept-Encoding”指定方法[转]
现在的新浏览器都支持压缩了,因此如果网站启用了GZip,可以无需再指定“Vary: Accept-Encoding”标头,不过指定“Vary: Accept-Encoding”标头会有更高的保险,而它 ...
- Walkthrough: Writing a Visualizer in C#
https://msdn.microsoft.com/en-us/library/ms164759.aspx
- Python 字典 in 操作符
描述 Python 字典 in 操作符用于判断键(key)是否存在于字典(D)中,如果键在字典中返回True,否则返回False. 在Python2中还可以使用 has_key() 方法,官方文档推荐 ...
- MPU6050读取FIFI数据时mpu_dmp_get_data的返回值一直是1
试验中发现:不断进行循环读fiffo就可以得到正常数据.形如这样 );//返回值:0,DMP成功解出欧拉角 printf("pitch=%f\troll=%f\tyaw=%f\r\n&quo ...
- 使用 dockerfile 创建镜像
dockerfile 是一个文本格式的配置文件,可以使用 dockerfile 快速创建自定义的镜像. dockerfile 一般包含4部分信息:基础镜像信息.维护者信息.镜像操作指令.容器启动时执行 ...
- Mybatis(四):MyBatis核心组件介绍原理解析和源码解读
Mybatis核心成员 Configuration MyBatis所有的配置信息都保存在Configuration对象之中,配置文件中的大部分配置都会存储到该类中 SqlSession ...
- JavaScript:RegExp对象的使用(整理)
1. RegExp是什么? 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 2. 如何创建RegExp? 2.1 直接量语法 /pattern/attributes 2.2 创建RegExp ...