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详解相关推荐

  1. android收藏功能demo,Android使用Realm数据库实现App中的收藏功能(代码详解)

    前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式: 使用SharedPreferences存储数据: 文件存储数据: SQLite数据 ...

  2. Lua中的loadfile、dofile、require详解

    这篇文章主要介绍了Lua中的loadfile.dofile.require详解,本文分别用实例讲解它的用法和特点等内容,需要的朋友可以参考下 本来今天不应该讨论这几个函数的,不过,为了凑字数..不,为 ...

  3. Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(下)

       本文原创, 转载请注明出处:http://blog.csdn.net/qinjuning 上篇文章<<Android中measure过程.WRAP_CONTENT详解以及xml布局文 ...

  4. android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】

    本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...

  5. android 中的悬浮按钮,Android 中FloatingActionButton(悬浮按钮)实例详解

    android 中floatingactionbutton(悬浮按钮)实例详解 一.介绍 这个类是继承自imageview的,所以对于这个控件我们可以使用imageview的所有属性 二.使用准备, ...

  6. Android中联系人和通话记录详解(2)

    在文章Android中联系人和通话记录详解(1)中对通话记录进行了分析,本章将对联系人的数据库表.字段以及Insert,Query,Delelte,Update四大基本数据操作进行分析. 与联系人相关 ...

  7. android mvp模式例子_Android中mvp模式使用实例详解

    MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示.作为一种新的模式,MVP与MVC有着一 ...

  8. iOS中的HotFix方案总结详解

    iOS中的HotFix方案总结详解 相信HotFix大家应该都很熟悉了,今天主要对于最近调研的一些方案做一些总结.iOS中的HotFix方案大致可以分为四种: WaxPatch(Alibaba) Dy ...

  9. Android 进阶——Framework 核心之Android Storage Access Framework(SAF)存储访问框架机制详解(二)

    文章大纲 引言 一.DirectFragment 1.当选中DirectoryFragment中RecyclerView的Item时 2.选中DirectoryFragment中RecyclerVie ...

最新文章

  1. 讯飞语音语音听写,设置识别语言
  2. Bytes int java_Java Bytes.readInt方法代码示例
  3. python画直方图成绩分析-使用Python绘制直方图和正态分布曲线
  4. 游标声明 oracle,Oracle游标声明
  5. SD-WAN技术的详细解析
  6. 纯css制作简易轮播图(animation、keyFrame)
  7. 修改Chrome默认搜索引擎
  8. 小程序开发者服务器设计,微信小程序的设计思路和理念
  9. 计算机网络谢希仁课后答案第七版答案完整版
  10. 计算机控制中的时序,时序控制
  11. Mac安装brew及adb环境
  12. 列车排座2 算法笔试题
  13. hive以半小时为维度进行统计的需求
  14. 搭建kinect for windows开发平台
  15. oracle时间回溯,关于Oracle降序索引的定意及回溯
  16. ChatGPT专业应用:生成行业分析报告
  17. 公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,使用穷举法求公鸡、母鸡、小鸡各多少只。
  18. Hive2.1函数列表
  19. 【Android实现16位灰度图数据转RGB数据并以bitmap格式显示】
  20. 电商4.0时代 新的「开端」

热门文章

  1. [转载] Python高级变量(列表、元组、字典、字符串、公共方法)
  2. java scanner_Java Scanner radix()方法与示例
  3. puppeteer api_使用Node.js和puppeteer API从URL创建PDF文件
  4. 在JavaScript中以Hours24:Minutes:Seconds格式获取当前时间
  5. Java Hashtable equals()方法与示例
  6. 什么是bcd码数据传输通讯_传输障碍| 数据通讯
  7. Java中的Switch都支持String了,为什么不支持long?
  8. ReactNative常用组件汇总
  9. 广州海珠区计算机学校,2019广州海珠区电脑派位和对口直升表
  10. Bootstrap模态框显示时有阴影遮罩层