2009-11-01 8 views
2
T = { 
{Name = "Mark", HP = 54, Breed = "Ghost"}, 
{Name = "Stan", HP = 24, Breed = "Zombie"}, 
{Name = "Juli", HP = 100, Breed = "Human"}}, 

질문 정렬 :루아 - 표 인쇄 표 및

가 어떻게 그냥 이름을 인쇄 할을?

어떻게 HP로 분류 할 수 있습니까?

답변

7

이름을 인쇄하려면 pairs 또는 ipairs 함수를 사용하여 테이블을 반복해야합니다. ipairs은 1에서 N (숫자 인덱스에만 해당)으로 반복하며, pairs단위로 모든 요소를 반복합니다. 정의 된 순서는 없습니다.

> T = { {Name = "Mark", HP = 54, Breed = "Ghost"}, {Name = "Stan", HP = 24, Breed = "Zombie"}, {Name = "Juli", HP = 100, Breed = "Human"}} 
> for _,t in ipairs(T) do print(t.Name) end 
Mark 
Stan 
Juli 

는 그런 다음 테이블 을 정렬 할 table.sort 기능을 사용할 수있는 장소 : table.sort의 두 번째 인수는 선택의 비교 함수입니다

> table.sort(T, function(x,y) return x.HP < y.HP end) 
> for _,t in ipairs(T) do print(t.Name, t.HP) end 
Stan 24 
Mark 54 
Juli 100 

; 이 경우에는 HP 값만 비교하려고했습니다.

+1

당신은'ipairs()'와'pairs()'의 의미를 뒤집었다. 'ipairs()'는 숫자 인덱스를 반복하고,'pairs()'는 모든 원소를 반복합니다. – gwell

+0

죄송합니다. 결정된. –