Lua 封装类--lua和android

Lua封装类(用面向对象的话说),有三种写法:如下:

方式一

Lib = {}
Lib.name = nil
Lib.foo = function (x,y) return x + y end
Lib.goo = function (x,y) return x - y end

方式二:

Lib = {
    name = nil,
    foo = function (x,y) return x + y end,
    goo = function (x,y) return x - y end,
}

方式三:

Lib = {}
Lib.name = nil
function Lib.foo (x,y)
return x + y
end
function Lib.goo (x,y)
return x - y
end

验证(coronacard in android):

-----------------------------------------------------------------------------
-- do start and fill screen
print("Start Lua...")
mBackground = display.newRect( 0, 0, 2 * display.contentWidth, 2 * display.contentHeight )
-----------------------------------------------------------------------------

-----------------------------------------------------------------------------
-- define Lib
Lib = {}
Lib.name = nil
Lib.foo = function (x,y) return x + y end
Lib.goo = function (x,y) return x - y end
-----------------------------------------------------------------------------

local libA = Lib
libA.name = "test Lib at 1"
local i,j = 10,20;
print(libA.name.."--"..libA.foo(i, j))
libA.name = "test Lib at 2"
print(libA.name.."--"..libA.goo(i,j))
时间: 2024-10-13 11:05:57

Lua 封装类--lua和android的相关文章

让lua面向对象--lua和android

让lua面向对象 lua本身不支持面向对象的特性,但是由于lua是基于原型(prototype)的语言,要实现面向对象的特性也是有一定的方法的,实现方式有很多种, 总结了一下我最近对使用lua实现面向对象的特性,主要可以分为以下两种不同的方式来实现: 1.使用metatable的__index域实现,实现的时候需要利用的lua语言的一些特性才可以实现,主要有: a.将table b作为table a的一个prototype的方法:setmetatable(a, {__index = b}); b

错误gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lua.o lua.clua.c:67:31: error:

编译Lua时,出现这样的错误: gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_USE_LINUX -c -o lua.o lua.clua.c:67:31: error: 查阅了一下,centOS上需要安装readline-devel ncurses-devel yum install readline-devel ncurses-devel 测试平台成功. [[email protected] lua-5.2.3]# make linux test cd src &

在C++使用LUA交互,LUA实现闭包,C++/LUA相互闭包

LUA可谓是配置文件神器,具体功能用过才知道,接近两年没用了抽了俩小时熟悉了下基本的用法. 包括C/LUA堆栈操作 函数相互调用 以及LUA的闭包 C++和LUA相互闭包 想要灵活使用LUA必须先要学习 LUA和C的堆栈交互模型 类似于汇编函数调用方式了 很有意思. 要学习LUA首先要理解LUA和C/C++交互的堆栈lua_State  这里引用网友的一篇文章很详细 http://wind-catalpa.blog.163.com/blog/static/11475354320131191031

FFLIB之FFLUA——C++嵌入Lua&扩展Lua利器[转]

摘要: 在使用C++做服务器开发中,经常会使用到脚本技术,Lua是最优秀的嵌入式脚本之一.Lua的轻量.小巧.概念之简单,都使他变得越来越受欢迎.本人也使用过python做嵌入式脚本,二者各有特点,关于python之后会写相关的文章,python对于我而言更喜欢用来编写工具,我前边一些相关的算法也是用python来实现的.今天主要讲Lua相关的开发技术.Lua具有如下特点: Lua 拥有虚拟机的概念,而其全部用标准C实现,不依赖任何库即可编译安装,更令人欣喜的是,整个Lua 的实现代码并不算多,

如何在Mac OS X 中运行Lua (Running Lua on Mac OS X)

参考文章:1) http://www.oschina.net/question/12_769552) http://rudamoura.com/luaonmacosx.html 最近在为iOS开发游戏,我的开发机是iPhone5.在开发的游戏项目中需要使用Lua语言,所以想在我的苹果MacBook Pro 中安装Lua语言的解释器,以便进行脚本调试.我的Mac OS X的版本是10.8.3.Lua 是一个轻量级的脚本语言,在游戏开发上使用非常多.它是开源的.我们可以下载它的源码进行编译. 到本文

【Lua】Lua中__index与元表(转)

转载于:http://blog.csdn.net/xocoder/article/details/9028347 Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,也是凭借这个机制,才能够实现“面向对象”的. 举例说明: tempTable = {} print(tempTable.memberA) --这里试图打印tempTable并不存在的成员memberA 执行结果:nil输出为nil的

CC3.2+Lua(8) ——Lua调用自定义C++类

[唠叨] 本节要讲的是如果将自己写的C++类注册进Lua环境,让Lua去调用自定义的C++类. 网上有很多都是用原始的tolua++工具来注册C++类的,我看了很多这样的教程,感觉操作起来十分麻烦,而且也很难看懂他们到底在讲什么. 其实,在cocos2dx v3.2版本中,提供了bindings-generator脚本来封装toLua++的用法,从而节省了工作量. [致谢] http://segmentfault.com/blog/hongliang/1190000000718145 (讲得非常

【Lua】Lua + openresty遍历文件目录

OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器,它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项. 今天用OpenResty + lua来遍历指定目录,返回json字符串 我们用Lua来遍历文件目录,并用nginx来访问lua文件,使其返回这个目录的json字符串. Lua代码: 1 local lfs = require("lfs") 2 3 function getType(path) 4 return

【Lua】Lua + LWT + ExtJS构建目录树

Lua处理后台逻辑,Lua lwt搭建后台程序,ExtJS根据后台传来的json数据构建目录树. 前台html和ExtJS代码不用多讲,直接上代码: treePanel.html 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 5 <title>ExtJS TreePanel</