2017-10-31 1 views
1

중첩 테이블로 만든 표에서 특정 변수를 테스트하려고합니다. 그러나 내가 늘Lua 중첩 테이블 내에서 테이블 값 처리

y = {} 
for _y = 0,16 do 
    for _x = 0,16 do 
     x = {} 
     x.x = _x 
     x.y = _y 
     x.v = flr(rnd(2)) 

     if x.x < 1 or x.x > 14 then 
      x.v = 3 
     end 


     if x.v == 0 then 
      x.v = "." 
     elseif x.v ==1 then 
      x.v = "," 
     else 
      x.v = "0" 
     end 
     add(y,x) 
    end 
end 

내가

print(t[1][3]) 

를 사용하여 값에 접근 시도했습니다 나에게 변수에만 데이터 유형 또는 전무 값에 저장된 값을 제공하려고 상관없이 그러나 이것은 단지 인쇄 back to a nil value,이 두 테이블 내의 값 내에 저장된 것을 어떻게 표시 할 것인가? x_i 각각의 형식이며,

y = {x_1, x_2, x_3, ...} 

:

+0

처럼 보이도록 수정 '인쇄 (Y [1] .x를)'? – hjpotter92

+0

예, [3]을 (를) 잘못 사용하여 .v를 사용합니까? –

답변

2

는 다음과 같이 중첩이 너무

x = { 
    x = p, 
    y = q, 
    v = r 
} 

, 당신은 y[i]x 요소에 대한 색인이되며, 각 y[i]에는 3 개의 속성이 있습니다.

print(y[1].x) 

은 당신에게 줄 것입니다 x_1.x

0

당신은 2 차원 테이블을 만들고 싶지만 1 차원 테이블 만 만들고 싶습니다.

그것이 안 코드가 다소이

y = {} 
for _y=1,16 do 
    y[_y] = {} 
    for _x=1,16 do 
     y[_y][_x]= "your data" 
    end 
end 
관련 문제