要理解table的由来,首先需要了解Lua的由来。
-
Lua的由来
首先,Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
它的出身是C语言,定位是嵌入到宿主代码的脚本语言,导致了其不会带很多的各种类库,各种数据结构就会被舍弃掉,比如字典,列表,哈希表等。
table 是 Lua 中唯一的数据结构,其他语言所提供的其他数据结构比如:arrays、records、lists、queues、sets 等,Lua 都是通过 table 来实现,并且在 lua 中 table 很好的实现了这些数据结构。
在传统的 C 语言或者 Pascal 语言中我们经常使用 arrays 和 lists(record+pointer)来实现大部分的数据结构,在 Lua 中不仅可以用 table 完成同样的功能,而且 table 的功能更加强大。通过使用 table 很多算法的实现都简化了,比如你在 lua 中很少需要自己去实现一个搜索算法,因为 table 本身就提供了这样的功能。
灵活是有代价的,下一篇分析table的遍历。
网友评论