2009-10-10 5 views
2

Il est possible de passer un tableau 2d à une fonction en tant que paramètre? J'initialisé un tableau comme celui-ci:Passer un tableau 2d pour fonctionner dans Lua

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

et j'ai fonction comme ceci:

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

gave le message d'erreur attempt to index field '?' (a nil value)

Toutes les variables sont déclarées et initialisées.

Répondre

4

Votre code devrait fonctionner s'il est initialisé correctement.

Par exemple, l'exemple de code ci-dessous la sortie 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

Notez que c'est une bonne idée de créer des variables locales i et z. –

1

Peut-être que vous pouvez partager le reste de votre code? Les pistes suivantes sans erreur:

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)

J'ai eu ces erreurs tout en changeant métatable d'une variable.

Questions connexes