apolloxlua标准库 require 函数说明

简介:

使用方式

require("文件地址")

在apollox物理设计上,支持lua的require模块方式,require方法可以在web模式和tool方式使用。 本文简单介绍一下,在web模式下的配合vfs的使用。

require的具体细节和lua的实现方式类似, 模块作为程序的最小单元存在,模块与模块之间的关系,应该是隔离的。 在web模式下使用vfs组织模块查找的路径。

使用require在某种情况下会有限制,他们分别是如果模块的语法存在错误,将无法交织到模块的代码抛出错误。 如果vfs里并没有该模块的平坦模式的代码, 会抛出错误。如果vfs配置了baseURL,一般vfs在内存无法查找到该文件将会根据baseURL的路径进行远程加载该模块。

一个简单示例的vfs的视图

输入图片说明

lua_module.lua 的代码如下



--请注意这个代码在web console示例程序中是无法执行的。
--这是一个lua的new模块,module case 里使用

local m = {}

local hellow  = function () 
    print("hellow, i am a module method");
end

m.hellow = hellow;

return m;


lua_duplicatedef.lua 的代码如下


--请注意这个代码在web console示例程序中是无法执行的。
--这是一个lua的new模块,module case 里使用

local other = require("build/lua_module.lua")
local m = {}

local hellow  = function () 
    print("hellow, i am duplicate def");
end

m.hellow = hellow;
m.other  = other.hellow;
return m;

module include case 的代码如下

//////////
/// 模块测试
/////////
var module = require("build/lua_module.lua");

if(module) {
    module.hellow();
}

var module2 = require("build/lua_duplicatedef.lua");

if(module) {
    module2.hellow();
    module2.other();
}

执行结果:

输入图片说明

相关文章
|
Java 容器 Spring
聊聊Spring的bean覆盖(存在同名name/id问题),介绍Spring名称生成策略接口BeanNameGenerator【享学Spring】(中)
聊聊Spring的bean覆盖(存在同名name/id问题),介绍Spring名称生成策略接口BeanNameGenerator【享学Spring】(中)
|
5月前
|
JavaScript 前端开发 数据处理
b超单生成器一键生成, 在线制作b超免费生成图, b超单在线生成器【网页JS版学习】
基于网页JS的B超单在线生成器。这个项目包含完整的HTML、CSS和JavaScript代码,实现表单输入、图像处理
|
算法 数据库
|
消息中间件 存储 容器
RT-Thread快速入门-消息队列
RT-Thread快速入门-消息队列
456 0
|
SQL Oracle 关系型数据库
Oracle查询表空间的每日增长量
Oracle查询表空间的每日增长量
584 0
|
SQL 存储 分布式计算
【Hive】(二十一)textfile、sequencefile 和 rcfile 的使用与区别详解
【Hive】(二十一)textfile、sequencefile 和 rcfile 的使用与区别详解
489 0
【Hive】(二十一)textfile、sequencefile 和 rcfile 的使用与区别详解
|
移动开发 Android开发 iOS开发
ReactNative[IOS]点击空白位置无法隐藏键盘
ReactNative[IOS]点击空白位置无法隐藏键盘
553 0
ReactNative[IOS]点击空白位置无法隐藏键盘
|
前端开发 安全 Java
Spring注入的成员属性HttpServletRequest是线程安全的吗?【享学Spring MVC】(上)
Spring注入的成员属性HttpServletRequest是线程安全的吗?【享学Spring MVC】(上)