Lua
文章平均质量分 80
栗子大人
一个做游戏的。
展开
-
Lua中几种for循环的简单比较
Lua的for循环分为两种:数值for循环(numeric for)泛型for循环(generic for)数值for循环语义数值for循环的语法如下:for i = _initialValue, _limitValue, _stepValue do <body>end_initialValue, _limitValue, _stepValue三者都必须是number类型。其中_stepValue为1时可以省略。注意这三者都是在循环开始前一次性求值的。进入代码时,_i原创 2021-10-15 17:34:46 · 3624 阅读 · 0 评论 -
Lua源码:向table内新增元素及rehash过程
Lua向表内新增元素(N)主要走的是luaH_newkey函数。其过程大体如下:根据给定的key计算出应该存放的位置P如果P处没有元素,直接存放就好如果P处已经有元素,这时存在两种情况:在P处发生了碰撞,需要在物理上将N存放到下一个空位,并从逻辑上将N连接到P的链表中在别处放生碰撞的元素(O)被放到P处,需要将O移到下一个空位,将N存放到P处可以看到,无论何处发生的碰撞导致P处被占据,此时都要找到一个新的空位置F来存放新元素N,而当空间已满的时候,无法找到新的F,此时就会触发重散列的原创 2021-10-15 11:59:16 · 1962 阅读 · 0 评论 -
LuaStruct
LuaStruct提供了一种简单的对Lua数据进行打包或者序列化的方式,可以方便地进行Lua与其他语言的数据传输。ToLuaRunTime中也已经集成了该库。其核心API只有两个:struct.pack – 用于数据打包,struct.pack(格式化字符串,需要打包的数据1,需要打包的数据2 …)struct.unpack – 用于数据解包,struct.unpack(格式化字符串,需要解包的字节数组,开始解包的位置)无论打包还是解包,使用都很简单,核心思想是:对于每个需要进行操作的数据,提原创 2021-10-08 16:03:06 · 1957 阅读 · 0 评论