Lua
honey199396
记录自己工作中遇到的点点滴滴沟壑。
展开
-
Lua -- MacOS上安装lua
1.在Mac OS的终端上查询本机是否已经安装了lua或者安装成功了lua没有安装:happyelements@happyelementsdeMac-mini ~$ lua-bash: lua: command not found安装成功:happyelements@happyelementsdeMac-mini /$ luaLua 5.3.2 Copyright (C) 1994-2015原创 2016-03-09 13:13:51 · 1345 阅读 · 0 评论 -
c++ 调用lua
首先配置环境1.先去下载一个lua源文件:http://www.lua.org2.在Xcode中新建一个控制台应用程序,取名CppCLua3.将第一步下载下来的文件解压,在终端中进入到解压目录下,输入make macosx,这样便可以生成Mac下面的lib文件。4.接下来把刚刚解压缩的文件夹拷贝到你新建的工程下面,然后设置include路径和library路径。(注意,这里是不需要把头文件添加到Xc原创 2016-03-15 21:35:57 · 3604 阅读 · 0 评论 -
Lua -- unpack
unpack它接受一个数组(table)作为参数,并默认从下标1开始返回数组的所有元素do arrayData = {"a","b","c","d","e"} print(arrayData) -- print the address of the arrayData print(table.unpack(arrayData)) -- print all the elem原创 2017-09-12 14:01:56 · 4481 阅读 · 0 评论 -
lua -- 文件操作(I/O)
Lua使用一个I/O库来读取和处理文件,对文件操作模式分为两种: 简单模式:拥有一个当前的输入文件和输出文件,并提供对这些文件的相关操作,针对一些简单文件操作比较方便 完全模式:使用外部的句柄来实现。它使用一种面向对象的方式,将所有文件操作定义文件句柄的方法,读取多个文件操作是更加合适简单模式是使用io.function_name, 完全模式使用file:function_name1、file原创 2017-09-28 16:49:08 · 3868 阅读 · 0 评论 -
lua -- next
next 允许程序遍历表中的每一个字段,返回下一索引和该索引的值。local a = {a = "a", b = "b", c = "c", d = "d"}local valuewhile next(a, value) do print(next(a, value)) value = next(a, value)end输出如下: next函数原型是next(table[,i原创 2017-09-21 18:10:08 · 8662 阅读 · 1 评论 -
lua -- 使用remove删除table数据
在Lua语言中,一切皆是table,所有数据,函数都保存在table中,但是当我们使用了table后,该如何清理table表中数据呢。 先看一个函数: table.remove(table[,pos]):删除在pos位置上的元素,后面的元素会向前一栋,然后删除的index会向前移动,导致删除后的数据不是你想要的。 看如下代码:local array = {"a","a","a","b","a"原创 2017-09-22 12:00:09 · 65470 阅读 · 0 评论 -
Lua - 获取系统时间(os.date()/os.time())
local getTime = os.date(“%c”);其中的%c可以是以下的一种:(注意大小写)%aabbreviated weekday name (e.g., Wed)%Afull weekday name (e.g., Wednesday)%babbreviated month name (e.g.,转载 2017-11-27 19:02:32 · 8378 阅读 · 0 评论 -
lua -- class
Lua中没有类的概念,有的只有table表,而面向对象的实现只不过是将表与父类的表连在一起,没有某个变量的时候就去父类查找。cocos2dx-lua中有一个class函数实现了类的继承,包括了单继承和多重继承。function class(classname, ...) -- 参数一:要创建的类名称,参数二:父类-可选参数,可以是table,function,userdata等 lo原创 2016-03-14 20:17:31 · 6657 阅读 · 0 评论 -
lua 调用 c++
我们在上一篇学习了如何使用C++调用Lua,这一次我们处理相反的过程,使用Lua调用C++,我们使用Lua文章中一个average函数。 如何在Xcode中设置Lua环境请看:http://blog.csdn.net/honey199396/article/details/50900277在这篇文章中我们将在C++中创建函数,告诉Lua解析器他的情况,最后从Lua调用它。后面我们也谈一谈lua程序原创 2016-03-16 10:41:52 · 1608 阅读 · 0 评论 -
Lua -- 字符串操作
Lua 字符串字符串或串(String)是由数字、字母、下划线组成的一串字符。 Lua 语言中字符串可以使用以下三种方式来表示: 单引号间的一串字符。 双引号间的一串字符。 [[和]]间的一串字符。字符串操作Lua 提供了很多的方法来支持字符串的操作:字符串全部转为大写字母。string.upper(argument):字符串全部转为小写字母。string.lower(argumen原创 2016-03-09 16:00:06 · 1009 阅读 · 0 评论 -
Lua -- pairs和ipairs区别
Lua官方文档:http://www.lua.org/docs.html标准库提供了集中迭代器,包括迭代文件每行的(io.lines),迭代table元素的(pairs),迭代数组元素的(ipairs),迭代字符串中单词的 (string.gmatch)等等。 Lua官方文档对pairs,ipairs的解释如下:ipairs (t) Returns three values (an iterat原创 2016-03-09 16:45:40 · 504 阅读 · 0 评论 -
Lua -- table(表)
Lua table(表)table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数字、字典等。Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。Lua table 是不固定大小的,你可以根据自己需要进行扩容。Lua也是通过table来解决模块(module)、包(package)和对象(Object转载 2016-03-09 17:19:06 · 659 阅读 · 0 评论 -
Lua -- 元表(Metatable)
在 Lua table 中我们可以访问对应的key来得到value值,但是却无法对两个 table 进行操作。因此 Lua 提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。例如,使用元表我们可以定义Lua如何计算两个table的相加操作a+b。当Lua试图对两个表进行相加时,先检查两者之一是否有元表,之后检查是否有一个叫"__ad转载 2016-03-09 18:47:25 · 456 阅读 · 0 评论 -
Lua -- __index元方法
Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,也是凭借这个机制来模拟了类似“类”的行为举例说明:tempTable = {} print(tempTable.memberA) --这里试图打印tempTable并不存在的成员memberA 执行结果:nil转载 2016-03-10 12:34:11 · 552 阅读 · 0 评论 -
Lua -- 闭包
闭包的概念 在Lua中,闭包(closure)是由一个函数和该函数会访问到的非局部变量(或者是upvalue)组成的,其中非局部变量(non-local variable)是指不是在局部作用范围内定义的一个变量,但同时又不是一个全局变量,主要应用在嵌套函数和匿名函数里,因此若一个闭包没有会访问的非局部变量,那么它就是通常说的函数。也就是说,在Lua中,函数是闭包一种特殊情况。另外在Lua的C转载 2016-03-11 10:22:21 · 937 阅读 · 0 评论 -
Sublime -- 配置lua环境
使用sublime编译lua语言,首先需要配置环境 1. 点击工具栏,Tools –>Build System –> New Build System 我这里由于已经添加过lua的Build System了,所以可以看到已经勾选lua选项了。在新建脚本文件中添加一下代码:{ "cmd": ["lua","$file"], "file_regex":"^(?:lua:)?[\t]原创 2016-03-14 21:36:57 · 1195 阅读 · 0 评论 -
Lua -- select用法
调用select的时候需要传入固定实参selector和一系列变长的参数。如果selector为整型数n,那么select返回他的第n个可变参数,否则只能用字符“#”,select会返回变长参数的总数。do function func( ... ) for i=1,select('#', ...) do local argc = select(i, .原创 2016-03-15 10:31:47 · 4283 阅读 · 0 评论 -
Lua -- 重写pairs方法(让字典访问有序)
字典由于其独特的存储数据方式,我们访问一个字典可能会有不同的遍历顺序,当我们游戏中希望同一个字典,在不同手机上都有相同的访问顺序的时候,怎么办呢,我们可以重写字典的遍历方法pairslocal rawpairs = pairs--------------------------------------------- 可以按指定顺序遍历的map迭代器-- @param tbl 要迭代的表原创 2017-12-15 21:12:04 · 8843 阅读 · 1 评论