1. 程式人生 > >lua 4 使用table實現其他數據結構,並介紹遍歷方法

lua 4 使用table實現其他數據結構,並介紹遍歷方法

ger true key 51cto 先進先出 https ash 開發者 默認

本文會以vector / map / set 這三種數據類型的角度來梳理 table 支持的不同遍歷方式。

table as array / vector

一般,C/C++中的 array / vector (下文簡稱 vector) 是沒有 key。但是在 lua 中使用了 table 這種通用結構,就引入了 key 的問題。

在這裏,把想用做 vector 的 table,做一個非常重要的約定:1 初始,key 連續。由於 table 的自由度很高,這個需要開發者自己約束。

---- 新建

t = {"A", "BB", "CCC"} -- 默認的key就是1初始且連續

-- 或者
t = {} -- 建立一個空的
t[1] = 1
t[2] = 2
t[3] = 3

-- 或者
t = {  
    [1] = 1,  
    [2] = 2,  
    [3] = 3,  -- 這裏逗號可有可無
}

  

---- 賦值

---- 遍歷

table as map / linked list

table as set

table as queues (隊列,先進先出,不做介紹,請參考原文)

請參考:https://www.lua.org/pil/11.4.html

參考

http://blog.51cto.com/rangercyh/1032925

https://www.lua.org/pil/11.html

lua 4 使用table實現其他數據結構,並介紹遍歷方法