2011-10-28 40 views
7

只是選擇了Lua並試圖弄清楚如何構建表格。 我已經做了一個搜索,並在table.insert上找到了信息,但我發現的所有例子似乎都假設我只想要數字索引,而我想要做的是添加密鑰對。在Lua表格中插入鑰匙對

所以,我想知道這是否有效?

my_table = {} 
    my_table.insert(key = "Table Key", val = "Table Value") 

這將在一個循環中完成,我需要以後能夠訪問內容:

for k, v in pairs(my_table) do 
     ... 
    end 

感謝

回答

19

基本上有兩種方法來創建表格並用數據填充它們。

首先是使用table constructor一次創建並填充表格。這樣做是像如下:

tab = { 
    keyone = "first value",  -- this will be available as tab.keyone or tab["keyone"] 
    ["keytwo"] = "second value", -- this uses the full syntax 
} 

當你不知道你想要有事先什麼值,你可以先使用{}創建表,然後使用[]操作填充:

tab = {} 
tab["somekey"] = "some value" -- these two lines ... 
tab.somekey = "some value" -- ... are equivalent 

注只有當鍵是一個符合「標識符」規則的字符串時,纔可以使用第二個(點)語法糖 - 即以字母或下劃線開始,並且只包含字母,數字和下劃線。

P.S.:當然,你可以結合兩種方式:創建一個表,表的構造,然後用[]運營商填補其餘:

tab = { type = 'list' } 
tab.key1 = 'value one' 
tab['key2'] = 'value two' 
+0

感謝您的解釋 – Dayo

1

出現,這應該是答案:

my_table = {} 
Key = "Table Key" 
-- my_table.Key = "Table Value" 
my_table[Key] = "Table Value" 

爲我做了這份工作。

+0

是的,但你不需要'Key = 「表鍵」行。 – kikito

+2

-1:這個例子實際上不起作用。 'my_table.Key'與'my_table [Key]'不同。 –

+1

非常好的誰投票給我,因爲我試圖理解一種新的語言。這是更接近一步,我後來發現「my_table [Key]」有效。 – Dayo