Lua表在内存中如何处理?

Lua是如何处理表的增长的?

它是否相当于Java中的 ArrayList?即需要连续的内存空间,当它的大小超过已分配的空间时,内部数组会被复制到另一个内存空间。

有没有巧妙的方式来处理这个问题?

我的问题是,_一个表是如何存储在内存中的_?我不是在问如何在Lua中实现数组。

点赞
用户4178025
用户4178025

自 Lua 5.0 开始,表格成为了哈希表和数组的混合体。来自 Lua 5.0 实现文档

优化作为数组使用的表格的新算法:

不同于其他脚本语言, Lua 不提供数组类型。相反,Lua 程序员使用具有整数索引的常规表格来实现数组。Lua 5.0 使用一种新的算法,检测表格是否被用作数组,并自动将与数字索引相关联的值存储在实际数组中,而不是将它们添加到哈希表中。此算法在第 4 节中讨论。

之前的版本只有哈希表。

2015-04-28 19:53:06