2009-10-10 5 views
2

2 차원 배열을 매개 변수로 함수에 전달할 수 있습니까? 이 같은 배열 초기화 :2 차원 배열을 루아에서 함수로 전달

tab={} 
for i=1, 10 do 
    tab[i]={} 
    for z=1, 10 do 
     tab[i][z]= 0 
    end 
end 

을하고 난 다음과 같은 기능을 가지고 :

function foo(data) 
    ... 
    x = data[i][z] -- here i got error 
    ... 
end 

(가) attempt to index field '?' (a nil value)

모든 변수가 선언되고 초기화되는 오류 메시지를 주었다.

답변

4

으로 초기화하면 코드가 작동해야합니다.

예를 들어, 아래 코드 예제가 출력 3 :

function foo(data) 
    local i, z = 1, 2 
    print(data[i][z]) 
end 

local tab={} 
for i=1, 10 do 
    tab[i]={} 
    for z=1, 10 do 
    tab[i][z]= i + z 
    end 
end 

foo(tab) 
+0

i 및 z 로컬 변수를 만드는 것이 좋습니다. –

1

아마 당신은 당신의 코드의 나머지 부분을 공유 할 수 있습니까? 에러없이 다음 실행 : 일부 변수의 메타 테이블을 변경하는 동안 나는 이러한 오류를 가지고

tab={} 
for i=1, 10 do 
    tab[i]={} 
    for z=1, 10 do 
     tab[i][z]= 0 
    end 
end 

function foo(data) 
    print(data[3][2]) 
end 

foo(tab) 
0

The gave the error message attempt to index field '?' (a nil value)

.

관련 문제