2012-07-06 99 views
0

我有一個表logTable = {["cdm"] = "log text", ["data_engine"] = "log text"}LUA表尋址

代碼:

for k,v in pairs(logTable) do 
    print(v["cdm"]) end 

得到期望的結果:日誌文字

然而

print(logTable["cdm"]) 

回報什麼。我在這裏做錯了什麼?

編輯:

所以實際上我怎麼想提出表:

table.insert(logTable, { [probeName] = file.read('export/'..robotName..'/probes/'..probeGroup..'/'..probeName..'/'..probeName..'.log')})  

凡probeName是一個變量,會不會是我需要["probeName"],使之成爲字符串?但是,這將其視爲文字而不是變量?

我如何使用一個變量作爲表索引/鍵

+1

您的示例代碼工作正常。 http://codepad.org/n8z78Bae你的實際代碼中必須有不同的東西嗎? – jsimmons 2012-07-06 09:19:21

+0

所以這實際上是我如何製作表格: table.insert(logTable,{[probeName] = file.read('export /'.. robotName ..'/ probes /'.. probeGroup ..'/ '..probeName ..'/'.. probeName ..'。log')})\t 其中probeName是一個變量,是否需要[「probeName」]使它成爲一個字符串?但是,這將其視爲文字而不是變量? 如何使用變量作爲表索引/鍵 – Teknetik 2012-07-06 09:24:17

回答

1

你確實有一個表表在這裏,所以你的表是這樣的:

{ 
    { 
     ["cdm"] = "log text", 
     ["data engine"] = "log text" 
    } 
} 

這就是爲什麼你print(logTable["cdm"])沒有按沒有工作。 table.insert也用於數字索引表;這一次,字典語法更清晰:

logTable["probeName"] = file.read('export/'..robotName.. 
            '/probes/'..probeGroup..'/' 
            ..probeName..'/'..probeName..'.log') 
+0

在後一種情況下'logTable [「probeName」]'也可以寫爲'logTable.probeName'。除非你真的想使用'probeName'變量的值,在這種情況下,你應該只使用'logTable [probeName]'。 – 2012-07-06 12:16:00