Lua的table.insert具体插入位置与#的原理

先看两段代码

 

 

 

 有人多人都说#是取表的长度,遇到nil就停止了,但是从这里发现,其实并不是这样的。

高人指导说其实#的底层是一个二分查找,因为一个alimit的字段,产生了两种不同的算法,

导致这两个表的长度取的都不一样。

而table.insert插入的默认位置是#tab+1的位置,这也就是为什么这上面两种表的长度和插入位置不同的原因。

相关文章

1.github代码实践源代码是lua脚本语言,下载th之后运行thmai...
此文为搬运帖,原帖地址https://www.cnblogs.com/zwywilliam/...
Rime输入法通过定义lua文件,可以实现获取当前时间日期的功能...
localfunctiongenerate_action(params)localscale_action=cc...
2022年1月11日13:57:45 官方:https://opm.openresty.org/官...
在Lua中的table(表),就像c#中的HashMap(哈希表),key和...