android lua loadluafile 相对路径,Lua中的loadfile、dofile、require详解
1.loadfile——只编译,不运行java
loadfile故名思议,它只会加载文件,编译代码,不会运行文件里的代码。
好比,咱们有一个hellofile.lua文件:函数
复制代码代码以下:
print(“hello”);
function hehe()
print(“hello”);
end
这个文件里有一句代码,和一个函数。试试用loadfile加载这个文件,以下代码:测试
复制代码代码以下:
loadfile("hellofile.lua");
print("end");
输出结果以下:ui
复制代码代码以下:
[LUA-print] end
若是说loadfile会执行文件里的代码的话,那么,应该会输出hello字符串的。
结果代表,它是不会执行代码的。lua
2.dofile——执行spa
很明显,dofile就是会执行代码的家伙了,以下代码:code
复制代码代码以下:
dofile("E:/Android/wordspace_cocosIDERc0/CocosLuaTest/src/hellofile.lua");
print("end");
输出结果以下:字符串
复制代码代码以下:
[LUA-print] hello
[LUA-print] end
这里有点尴尬,文件路径我用了绝对路径,由于dofile在Coco Code IDE里使用相对路径会找不到文件(即便使用了addSearchPath)it
不过不要紧,不影响本文的内容。io
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字符串。
require:
在lua中,require函数像dofile同样载入文件为一个Chunk并执行。但具备两个好处:1. 按模式加载文件 2.不会重复载入相同的文件。
require的参数是一个完整的文件名(目录名+文件名,可能有点相似于java中的包吧),即package.path,典型的package.path值以下(其中D:\Bin为lua.exe所在目录):
.\?.lua;D:\Bin\lua\?.lua;D:\Bin\lua\?\init.lua;D:\Bin\?.lua;D:\Bin\?\init.lua
一般对咱们有用的目录是.\?.lua
因此,若是要执行当前目录的test.lua文件,咱们只须要require("test")便可,可是若是咱们要执行另外一个目录下的文件,好比"D:\lua\a.lua",咱们就须要将这个路径加入到package.path当中,例如咱们能够这样写:
package.path=package.path .. ";D:\?.lua"
这样咱们就可使用require函数了,好比require("a").
注:require只会被加载一次。
复制代码代码以下:
for callCount = 0, 2 do
require("test");
end
android lua loadluafile 相对路径,Lua中的loadfile、dofile、require详解相关推荐
- android收藏功能demo,Android使用Realm数据库实现App中的收藏功能(代码详解)
前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式: 使用SharedPreferences存储数据: 文件存储数据: SQLite数据 ...
- Lua中的loadfile、dofile、require详解
这篇文章主要介绍了Lua中的loadfile.dofile.require详解,本文分别用实例讲解它的用法和特点等内容,需要的朋友可以参考下 本来今天不应该讨论这几个函数的,不过,为了凑字数..不,为 ...
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(下)
本文原创, 转载请注明出处:http://blog.csdn.net/qinjuning 上篇文章<<Android中measure过程.WRAP_CONTENT详解以及xml布局文 ...
- android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】
本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...
- android 中的悬浮按钮,Android 中FloatingActionButton(悬浮按钮)实例详解
android 中floatingactionbutton(悬浮按钮)实例详解 一.介绍 这个类是继承自imageview的,所以对于这个控件我们可以使用imageview的所有属性 二.使用准备, ...
- Android中联系人和通话记录详解(2)
在文章Android中联系人和通话记录详解(1)中对通话记录进行了分析,本章将对联系人的数据库表.字段以及Insert,Query,Delelte,Update四大基本数据操作进行分析. 与联系人相关 ...
- android mvp模式例子_Android中mvp模式使用实例详解
MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示.作为一种新的模式,MVP与MVC有着一 ...
- iOS中的HotFix方案总结详解
iOS中的HotFix方案总结详解 相信HotFix大家应该都很熟悉了,今天主要对于最近调研的一些方案做一些总结.iOS中的HotFix方案大致可以分为四种: WaxPatch(Alibaba) Dy ...
- Android 进阶——Framework 核心之Android Storage Access Framework(SAF)存储访问框架机制详解(二)
文章大纲 引言 一.DirectFragment 1.当选中DirectoryFragment中RecyclerView的Item时 2.选中DirectoryFragment中RecyclerVie ...
最新文章
- 讯飞语音语音听写,设置识别语言
- Bytes int java_Java Bytes.readInt方法代码示例
- python画直方图成绩分析-使用Python绘制直方图和正态分布曲线
- 游标声明 oracle,Oracle游标声明
- SD-WAN技术的详细解析
- 纯css制作简易轮播图(animation、keyFrame)
- 修改Chrome默认搜索引擎
- 小程序开发者服务器设计,微信小程序的设计思路和理念
- 计算机网络谢希仁课后答案第七版答案完整版
- 计算机控制中的时序,时序控制
- Mac安装brew及adb环境
- 列车排座2 算法笔试题
- hive以半小时为维度进行统计的需求
- 搭建kinect for windows开发平台
- oracle时间回溯,关于Oracle降序索引的定意及回溯
- ChatGPT专业应用:生成行业分析报告
- 公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,使用穷举法求公鸡、母鸡、小鸡各多少只。
- Hive2.1函数列表
- 【Android实现16位灰度图数据转RGB数据并以bitmap格式显示】
- 电商4.0时代 新的「开端」
热门文章
- [转载] Python高级变量(列表、元组、字典、字符串、公共方法)
- java scanner_Java Scanner radix()方法与示例
- puppeteer api_使用Node.js和puppeteer API从URL创建PDF文件
- 在JavaScript中以Hours24:Minutes:Seconds格式获取当前时间
- Java Hashtable equals()方法与示例
- 什么是bcd码数据传输通讯_传输障碍| 数据通讯
- Java中的Switch都支持String了,为什么不支持long?
- ReactNative常用组件汇总
- 广州海珠区计算机学校,2019广州海珠区电脑派位和对口直升表
- Bootstrap模态框显示时有阴影遮罩层