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


先看两段代码

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

 

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

 

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

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

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

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

原创文章,作者:dweifng,如若转载,请注明出处:https://blog.ytso.com/268124.html

(0)
上一篇 2022年6月19日
下一篇 2022年6月19日

相关推荐

发表回复

登录后才能评论