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

先看两段代码

 

 

 

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐