2017-01-01 8 views
2
house = { 
     ["Street 22"] = { 
          {name = "George", age = 20}, 
          {name = "Pete", age = 25} 
         }, 
     ["Street 30"] = { 
          {name = "John", age = 32}, 
         } 
     } 

私はhouseテーブルのキー/通りを正確な順序で印刷したいと思います。私が使用している場合:Lua - 挿入順のテーブルキー

for i, v in pairs(house) do 
    print(i) 
end 
私は、彼らが挿入されている順序でそれらを印刷するにはどうすればよい それらを印刷しようとしますが、順序はランダムビットらしいです

...?

+0

を使用して、それをプリントアウトすることができます。 – warspyking

答えて

1

lhfの回答は既に述べたように、テーブルの関連マップ部分だけではこれを行うことはできません。ただし、表の配列索引部分を使用して挿入順序を維持する場合は、これを実行できます。例えば。

table.insert(house, "Street 22") 
local street = house[#house] 
house[street] = { {name = "George", age = 20}, 
        {name = "Pete", age = 25} } 

table.insert(house, "Street 30") 
street = house[#house] 
house[street] = { {name = "John", age = 32} } 

その後、あなたは、通りの名前を持つ配列を作成しipairsでそれを反復して、検索を行うipairs

for _, v in ipairs(house) do 
    print(v) 
end 
2

ルアテーブルは、キーと値のペアのセットです。順序はありません。

manualは言う:

インデックスが列挙される順序がさえ、数値指標のために、指定されていません。

関連する問題