Ciao,
ho una domanda che riguarda Lua.Sto scrivendo una funzione alla quale vorrei assegnare come variabile di entrata una struttura, chiamiamola STRUTT, la quale sono sicuro che avrà una tabella di vome VERTEX, cioé ad esempio:
`CICCIA = {VERTEX = {{ 1, 2, 3},
{ 4, 5, 6},
{ 7, 8, 9},
{10,11,12}}}`e vorrei che la funzione sia del tipo:
` function FUNZIONE(STRUTT)
m = table.getn(STRUTT.VERTEX)
n = table.getn(STRUTT.VERTEX[1])for i=1,m do
for j=1,n do
STRUTT.VERTEX[j] = 2*STRUTT.VERTEX[j]+1 — Esempio di elaborazione della tabella
end
endreturn STRUTT
end`Soltanto che quando faccio
` \directlua{
cubo = FUNZIONE(cubo)
}`mi dà il seguente errore:
`! LuaTeX error <\directlua >:1: attempt to index local 'STRUTT' (a nil value)
stack traceback:
<\directlua >:1: in function 'FUNZIONE'
<\directlua >:1: in main chunk.`Qualcuno sa dirmi come passare ad una funzione Lua una variabile struttura?
Grazie
Michele
Se chiami funzione(cubo) quando cubo non è ancora definito passi ad essa un valore nil…
Non confondere il nome del parametro nella definizione della funzione con le variabili che usi per rappresentarne il valore di ritorno.
Ti faccio notare che getn() è un metodo deprecato. Per trovare la lunghezza della tabella usa l’operatore # .
Inoltre la (unica) struttura dati tabella, in Lua è molto potente e flessibile ma cerca di tenere il loro uso il più semplice possibile.
R.