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

주택 테이블의 키/거리를 정확한 순서대로 인쇄하려고합니다. 내가 사용하는 경우 :Lua - 삽입 순서대로 표 키 인쇄

for i, v in pairs(house) do 
    print(i) 
end 
나는 그들이 삽입 순서대로 인쇄 할 수있는 방법 을 인쇄하려고하지만, 순서가 조금 임의 보인다 것

...?

+0

는, 거리 이름 배열을 만들기 ipairs으로 반복 사용하여 인쇄 할 수 있습니다, 다음 조회를 할. – 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

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

루아 테이블은 키 - 값 쌍의 집합입니다. 순서가 없습니다.

manual

는 말한다 :

인덱스는 심지어 숫자 인덱스를 들어, 지정되지 않은 열거되는 순서.