Lua中的loadfile、dofile、require详解
更新时间:2020年6月30日 23:51 点击:2414
本来今天不应该讨论这几个函数的,不过,为了凑字数..不,为了方便以后的文章,还是要谈谈这几个基础函数的~
1.loadfile——只编译,不运行
loadfile故名思议,它只会加载文件,编译代码,不会运行文件里的代码。
比如,我们有一个hellofile.lua文件:
复制代码 代码如下:
print(“hello”);
function hehe()
print(“hello”);
end
这个文件里有一句代码,和一个函数。试试用loadfile加载这个文件,如下代码:
复制代码 代码如下:
loadfile("hellofile.lua");
print("end");
输出结果如下:
复制代码 代码如下:
[LUA-print] end
如果说loadfile会执行文件里的代码的话,那么,应该会输出hello字符串的。
结果表明,它是不会执行代码的。
2.dofile——执行
很明显,dofile就是会执行代码的家伙了,如下代码:
复制代码 代码如下:
dofile("E:/Android/wordspace_cocosIDERc0/CocosLuaTest/src/hellofile.lua");
print("end");
输出结果如下:
复制代码 代码如下:
[LUA-print] hello
[LUA-print] end
这里有点尴尬,文件路径我用了绝对路径,因为dofile在Coco Code IDE里使用相对路径会找不到文件(即使使用了addSearchPath)
不过没关系,不影响本文的内容。
3.require——我只执行一次
require和dofile有点像,不过又很不一样,require在第一次加载文件的时候,会执行里面的代码。
但是,第二次之后,再次加载文件,则不会重复执行了。换句话说,它会保存已经加载过的文件,不会重复加载。
测试代码如下:
复制代码 代码如下:
for i = 1, 2, 1 do
require("hellofile.lua");
end
print("end");
为了说明这种情况,我刻意调用了两次require,输出结果如下:
复制代码 代码如下:
[LUA-print] hello
[LUA-print] end
和我们说的一样,调用了两次,但是代码只执行了一次。
如果这里换成dofile,则会输出两次hello字符串。
4.结束
我发现这样边看书边整理文章,进度有点慢…真是鱼和熊掌的问题了。
上一篇: Lua编程示例(八):生产者-消费者问题
下一篇: Lua编程示例(七):协同程序基础逻辑
相关文章
- 这篇文章主要给大家介绍的是关于Lua语言新手入门的简单教程,文中通过示例代码一步步介绍的非常详细,对各位新手们的入门提供了一个很方便的教程,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。...2020-06-30
- 最近在工作中遇到了一个问题,通过查找相关资料才得知原因是因为返回结果的问题,下面这篇文章主要给大家介绍了关于lua读取redis数据的null判断的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下...2020-06-30
- 这篇文章主要为大家详细介绍了require、backbone等重构手机图片查看器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-11-22
- 这篇文章主要介绍了Lua判断变量是否为数字、字符串是否可以转换为数字等,本文讲解了Lua 判断是字符还是数字的方法、Lua判断数字的方法、判断可否转换为数字的方法、判断并且准备一个初值的方法,需要的朋友可以参考下...2020-06-30
- 今天小编就为大家分享一篇关于Lua流程控制语句if else的使用示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-06-30
Lua的table库函数insert、remove、concat、sort详细介绍
这篇文章主要介绍了Lua的table库函数insert、remove、concat、sort详细介绍,本文分别给出了这几个函数的使用实例,需要的朋友可以参考下...2020-06-30- 这篇文章主要介绍了Lua中的模块(module)和包(package)详解,本文讲解了require函数、写一个模块、package.loaded、module函数等内容,需要的朋友可以参考下...2020-06-30
Lua中的loadfile、dofile、require详解
这篇文章主要介绍了Lua中的loadfile、dofile、require详解,本文分别用实例讲解它的用法和特点等内容,需要的朋友可以参考下...2020-06-30- 这篇文章主要给大家介绍了关于如何使用Vim搭建Lua开发环境的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-30
- 今天小编就为大家分享一篇关于Lua一维数组与多维数组的使用示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-06-30
- table 在lua中是一个非常常用的数据结构,可以用来存放各种类型的元素,下面这篇文章就来给大家介绍了关于lua中神奇的table的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧...2020-06-30
- 这篇文章主要给大家介绍了关于C语言与Lua之间的相互调用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。...2020-04-25
- 这篇文章主要给大家介绍了关于Lua Table转C# Dictionary的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。...2020-06-30
- 今天小编就为大家分享一篇关于Lua基础之运算符的使用示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-06-30
- 这篇文章主要给大家介绍了关于Lua中设置table为只读属性的方法,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。...2020-06-30
- 这篇文章主要介绍了ToLua框架下C#与Lua代码的互调操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-18
- 时间显示问题说白了就是时差问题,这篇文章主要给大家介绍了关于Lua游戏开发教程之时区问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-30
- 这篇文章主要介绍了Nginx中使用Lua脚本配置示例,本文以一个Lua拦截器为例讲解如何配置使用Lua脚本,需要的朋友可以参考下...2016-01-27
- Perl中的文件包含,有三种方法:do, require, 以及use,这里简单的介绍下方便需要的朋友...2020-06-29
php中set_include_path和require,include介绍
在php中set_include_path会导致require,include用法不一样了,对于这个问题我们来看一个简单的例子,具体如下。 在PHP中经常使用include,require来引用其他文件,使用相...2016-11-25