2014-03-27 40 views
2

好吧,我對lua很新,今天開始研究這個。所以這是我的代碼:Lua:索引預計,得到零

local l = {1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1} 

local n = table.getn(l) 

local path = {{l[1], 1}} 
local index = 1 

for i=2,n do  
    if l[i] ~= l[i-1] then 
     index = index + 1 
     path[index][1] = l[i] 
     path[index][2] = 0 
    end 
    path[index][2] = path[index][2] + 1 
end 

我想要做的是讓地方的零和一應與隨之而來的量進行分組路徑列(表)。輸出應該是:

{{1, 1}, {0, 3}, {1, 3}, {0, 8}, {1, 1}} 

但問題是我得到指數預期,得到了零錯誤行:path[index][1] = l[i]有什麼不對這個代碼? index應遞增,path陣列中的新項目應該創建...但它不是...

回答

3

索引設置爲並且您試圖索引到位置2的路徑,該路徑返回nil。然後你試圖在nil上設置索引1。您需要在路徑的索引2處創建一個表。試着這樣做

path[index] = {l[i], 0} 
+1

謝謝,它幫助...這是狂語))) – Dmytro

+1

當然我覺得大多數語言中會要求你在它設置索引之前初始化嵌套表/陣列。您也可以在使用索引進行設置之前初始化表格,我剛剛展示的代碼將創建表格並設置值。 – Craig

相關問題