
Lua
stormbjm
这个作者很懒,什么都没留下…
展开
-
C/C++ 中遍历 Lua table 完整版
在 C/C++ 中遍历一个 Lua table用 lua_next 来实现,这个大家都知道。然而,我却看到很多文章在示范 lua_next 时都只是点到为止,或绝口不提如何获取 key 值,或直接定义该 table 的 key 都是非匿名的,从而简单粗暴地使用 lua_tostring 来获取值。 仔细看看,Lua manual 里对 lua_next 的说明中最后有一句很重要的话:转载 2014-06-06 10:13:41 · 2961 阅读 · 0 评论 -
Lua正则表达式
正则表达式作为一种通用的算式,大量用于文本处理逻辑中,其主要好处是速度能够达到极致,而且代码量通常会非常少,本篇主要介绍lua中的正则使用,由于这样的文章网上随处都可以搜到,而且不乏整理的不错的,这里就不想再重新做这件事情。 正则表达式主要处理匹配问题,即通过给定语义通配符串,返回匹配成功的字符串列表。 在匹配的基础上,正则引擎往往提供了字符串的查找、替换、分割等功能转载 2015-02-13 09:47:17 · 1033 阅读 · 0 评论 -
lua中table如何安全移除元
在Lua中,table如何安全的移除元素这点挺重要,因为如果不小心,会没有正确的移除,造成内存泄漏。 引子 比如有些朋友常常这么做,大家看有啥问题 将test表中的偶数移除掉 local test = { 2, 3, 4, 8, 9, 100, 20, 13, 15, 7, 11} for i, v in ipairs( test ) do if v % 2 == 0 then转载 2014-11-01 21:42:28 · 1140 阅读 · 0 评论 -
Lua4.0中的函数
把Lua4.0里面的函数总结出来,目的是为了和5.1中的函数进行区分,由于工作中经常使用到4.0中的函数,所以列出来也便于查询和学习 标准库 _ALERT _ERRORMESSAGE call collectgarbage 功能:是垃圾收集器的通用接口,用于操作垃圾收集器 copytagmethods dofile (filename) 功能:转载 2014-10-28 09:40:10 · 751 阅读 · 0 评论 -
lua之基本函数
在大多数Lua语法分析中可以获得这些标准Lua函数. 无可争辩, 我们可以查阅Lua网站, 但是一些少了的函数被Blizzard进行了调整. 下面列出了所有Lua函数. WoW API中的Lua注意在WoWAPI没有提供所有标准的Lua函数, 很显然, 操作系统以及文件I/O库是不支持的 Lua函数这些函数都是Lua编程语言的一部分, 点击这里了解更多. •assert转载 2014-10-28 09:41:52 · 624 阅读 · 0 评论 -
Lua模式匹配
在string库中功能最强大的函数是: string.find(字符串查找) string.gsub(全局字符串替换) string.gfind(全局字符串查找) string.gmatch(返回查找到字符串的迭代器) 这些函数都是基于模式匹配的。与其他脚本语言不同的是,Lua并不使用POSIX规范的正则表达式[4](也写作regexp)来进行模式匹配。主要的原因出于程序大小方面转载 2014-08-14 10:12:51 · 1889 阅读 · 0 评论 -
Lua点号和冒号区别
定义的时候冒号默认接收self参数 调用的时候冒号默认传递调用者自己为参数 而句号要显示传递或接收self参数 -- 例如:句号定义,需要显示传递或接收 [plain] view plaincopy a = { x = 1 } function a.fun(self) print(self.x) end a.f转载 2014-08-13 09:52:49 · 36565 阅读 · 0 评论 -
makefile语法
-c 小写,表示只编译,不链接 -C 大写,切换到指定目录再执行 make 过程,makefile 在这个指定目录里面原创 2014-07-30 09:42:19 · 694 阅读 · 0 评论 -
Lua面向对象
Lua中的table就是一种对象,但是如果直接使用仍然会存在大量的问题,见如下代码: 1 Account = {balance = 0} 2 function Account.withdraw(v) 3 Account.balance = Account.balance - v 4 end 5 --下面是测试调用函数 6 Account.withdraw(100.00)转载 2014-06-13 10:32:20 · 869 阅读 · 0 评论 -
lua的元表
metatable是Lua中的重要概念。每一个table都可以加上metatable。meatable可以改变相应的table的行为。让我们看一个例子: t = {} -- 普通的table mt = {} -- metatable setmetatable(t, mt) -- 设定mt为t的metatable getmetatable(t) -- 返回mt 使用 getmetatabl转载 2014-06-11 18:13:02 · 895 阅读 · 0 评论 -
lua闭包
闭包概念在C++,.Net这些语言到是用的少,而在脚本语言比如javascript、perl、lua比较常见 下面我就讲一下lua脚本语言下的闭包,最好动动手才能有更深的印象 如下是lua语句 [html] view plaincopy --闭包 function f1() i=0 local function f转载 2014-06-25 11:33:40 · 903 阅读 · 0 评论 -
Step By Step(Lua调用C函数)
Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L)。简单说明一下,该函数类型仅仅包含一个表示Lua环境的指针作转载 2014-06-06 16:45:19 · 593 阅读 · 0 评论 -
Lua4.0中的函数
把Lua4.0里面的函数总结出来,目的是为了和5.1中的函数进行区分,由于工作中经常使用到4.0中的函数,所以列出来也便于查询和学习 标准库 _ALERT _ERRORMESSAGE call collectgarbage 功能:是垃圾收集器的通用接口,用于操作垃圾收集器 copytagmethods dofile (filename) 功能:转载 2015-09-06 15:09:18 · 605 阅读 · 0 评论