hash.c 代码分析Lua 中最重要的一个数据结构及相关操作。主要看下几个对外的接口。 /*
** Create a new hash. Return the hash pointer or NULL on error.
*/
Hash *lua_hashcreate (uns
转载
2024-05-09 09:35:36
44阅读
描述 设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设大小为 capacity ,操作次数是 n ,并有如下功能:Solution(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存get(key):如果关键字 key 存在于缓存中,则返回key对应的value值,否则返回 -1 。set(key, value):将记录(key, value)插入
文章目录调试(Debug)调试类型垃圾回收垃圾回收器函数 调试(Debug)Lua 提供了 debug 库用于提供创建我们自定义调试器的功能。Lua 本身并未有内置的调试器,但很多开发者共享了他们的 Lua 调试器代码。Lua 中 debug 库包含以下函数:上表列出了我们常用的调试函数,接下来我们可以看些简单的例子:function myfunction ()
print(debug.tra
转载
2024-05-03 11:52:45
112阅读
这是Lua设计与实现专栏的第6篇文章,专栏由于工作原因已经停更很久了,最近有些闲暇时间可以继续对Lua5.3中的增量GC算法进行一个比较深入的研究,本文主要分为顶层设计和具体实现两个大块。 文章以lua5.3源码为背景进行讨论。1.背景和C#、Java类似,lua采用了Mark&Sweep的算法来进行垃圾回收,与之相对的还有个常用算法是Automatic Reference
转载
2024-05-11 11:01:23
150阅读
首选先参考这个作者些的: thrift是一个比较流行的rpc框架,很多公司都有大规模使用的经验,不过网上很少有关于thrift-lua的介绍和example apache的thrift-lua也是刚刚从fbthrift项目引入,在安装过程中踩了一些坑,记录一下 首先是版本问题,apache-thrift的最新版本是0.9.3,这个版本支持的lua版本是5.2 不过由于nginx-lua模块用的
转载
2024-04-22 16:35:39
42阅读
首先要理解lua的class,要先理解metatable的作用和__index以及lua调用table里面的函数的时候搜索函数的逻辑:1、直接当前表里面搜索函数 如果存在,直接调用,不存在继续2、如果表里面不存在调用的函数,会查找表的metatable的__index a、如果__index是一个表,则在该表里面查找,回到第一步 &n
转载
2024-08-14 10:26:08
74阅读
近期由于工作的需要,需要把现在程序进行优化,考虑到每个地区一个版本,维护的成本太大,难度太高,决定用存储过程或是脚本语言把各地区和业务相当的代码封装起来,这样,各个地区只需要修改各地的存储过程或是脚本语言即可,主程序只需要维护一份即可。先用oracle的存储过程实现了业务代码的封装,这个相对简单,大家可以参考plsql用户指南与参考。至于脚本语言,考虑到与C的交互性和易用性,决定用lua来编写。
转载
2024-04-25 10:46:35
15阅读
5.用堆栈实现加减乘除用堆栈实现加减乘除,参考网上。 实现函数String compute(String input)假设输入的是一串表达式如"1 + 2 + 3" 我们只需要对这个字符串表达式进行处理,然后根据不同的符号做不同的压栈、出栈操作即可。因为要计算表达式,所以像+2+3这样的表达式肯定要在传参前或传参后进行处理为正常的表达式。这里只写正常情况例如1+2+3。那可以认定在没碰
下面我们通过一个实例介绍几个特效的使用,这个实例如下图所示,上图是一个操作菜单场景,选择菜单可以进入到下图动作场景,在下图动作场景中点击Go按钮可以执行我们选择的特性动作,点击Back按钮可以返回到菜单场景。
特效实例
我们重点看看MyActionScene场景,MyActionScene.lua主要代码如下: [html] view p
转载
2024-08-27 11:24:19
74阅读
cocos2dx中有关于lua类的实现,见cocos源码 framework/functions。先讲一部分比较难理解的:function class(classname, super)
local cls
-- inherited from Lua Object
if super then
cls = {}
setmet
转载
2024-02-13 09:55:57
79阅读
lua中的table貌似是lua中唯一的数据结构了,他既可以充当数组,也可以充当map使用,把这两种结合为一个数据结构,足以说明lua的简洁易用性。原本以为table实现起来会比较复杂,结果一上午就差不多写好了,而if语句却写了一整天,当然也包括了优化其他代码。table的实现包括构造和存取。一个table的构造:local a = {b = 3,c = {e = 9}}语法树会生成一个Table
转载
2024-04-03 11:05:32
153阅读
学过java或者C++的小伙伴肯定知道什么是继承,因为继承是面向对象的一大特征。面向过程的语言就不能实现继承了,lua也是一样。不过lua强大的table可以利用元表模拟出继承的功能。下面我就说下一如何用lua实现面向对象中继承的功能。什么是继承?曹操是三国时期杰出的政治家,文学家,书法家,军事家。总之这人很牛X!他的儿子们也都各有所长,为什么要说他的儿子们呢?因为:曹丕:继承了曹操的政治和谋略
转载
2024-03-26 10:06:19
44阅读
Lua 中继承与多态继承的实现引言目标背景知识类的特性原表实现类 - 封装继承类 - 继承与多态继承类 - 多重继承Reference 引言在 lua 中并没有类的概念。但是 lua 有一个数据结构 table,我们可以基于 table 数据结构来实现类似于 C++ 中的类。目标实现一个类似其他语言中的类的 class
支持类与类之间的继承支持类之间的多重继承背景知识类的特性封装:面向对象编程与
转载
2024-04-03 12:28:48
324阅读
Lua/c接口编程一、前言二、Lua环境搭建三、虚拟栈四、c语言调用lua的函数4.1、实现步骤4.2、完整示例代码五、Lua调用c语言的函数5.1、原理5.2、实现步骤5.3、从lua角度看调用过程5.4、完整示例代码六、C 闭包七、userdata在c语言的使用八、注册表在c语言的使用总结 一、前言Lua/c接口编程是skynet的核心技能开发,主要涉及到Lua调C语言和C语言调用Lua的工
转载
2024-05-23 13:06:22
100阅读
Nginx+Lua实现动态更新后端节点,主动监控检测方案:1、nginx+upsync模块https://github.com/weibocom/nginx-upsync-modulehttps://github.com/xiaokai-wang/nginx-stream-upsync-module支持TCP转发https://github.com/CallMeFoxie/nginx-upsync
原创
2018-12-06 14:49:40
3063阅读
点赞
# MySQL实现UPDATE的写法
在MySQL中,UPDATE语句用于修改表中的数据。它可以更新一条或多条记录,并且可以根据条件来选择需要更新的记录。本文将介绍MySQL中UPDATE语句的写法,以及一些常见的示例。
## 语法
UPDATE语句的基本语法如下:
```sql
UPDATE table_name
SET column1 = value1, column2 = value
原创
2023-07-20 11:00:33
919阅读
Lua5.1的常用API lua_State Lua状态机或叫Lua虚拟机,支持多线程,可创建多个状态机 typedef int (*lua_Cfunction)(lua_State*
转载
2024-08-12 10:25:28
116阅读
函数闭包function createCountdownTimer(second)
local ms=second * 1000;
local function countDown()
ms = ms - 1;
return ms;
end
return countDown;
end
timer1 = createCountdownTimer(1);
for i
转载
2024-04-03 08:51:41
593阅读
上次已经将Lua的工作环境配置好了,接下来我们要做一些简单的示例:Lua的命令行模式如果我们直接运行Lua的可执行文件(lua.exe)或者在【开始--运行】菜单里输入lua的话,就会出现一个命令提示符 > (一个大于号):从上面的的信息可以看到当前的Lua版本号,这里我使用的版本为 5.1.2Wiki上所有的Lua示例都是用以文本的形式给出代码了,为了直观起见,在代码不长的情况下,我会使用
转载
2024-03-07 19:07:33
59阅读
花了几天时间看了下cocos2d-x lua绑定那块,总算是基本搞明白了,下面分三部分解析lua绑定:一、lua绑定主要用到的底层函数lua绑定其本质就是有一个公用的lua_Stack来进行C和Lua之间的值传递,在路径[项目根目录]\frameworks\cocos2d-x\external\lua\luajit\include下有个lua.h文件,大部分lua绑定底层函数以及相关的常量都在这里
转载
2024-05-26 10:46:17
58阅读