Restituire più valori con Luajava
Domanda
Devo essere in grado di restituire una posizione (x, y) da Java a Lua e non riesco a capire come farlo.Con l'API C, premere solo i valori sulla pila e quindi restituire il numero di valori di ritorno, ma non sembra essere come Luajava lo fa.Qualche suggerimento?
Soluzione
Il problema potrebbe essere che il primo parametro è sempre l'oggetto Javafunction stesso.Diciamo che vuoi una funzione addmult
che richiede due numeri e restituisce la sua somma e il loro prodotto.I parametri numerici devono essere recuperati come indici 2 e 3, come segue:
JavaFunction addmult = new JavaFunction(L) {
@Override
public int execute() throws LuaException {
double x = L.toNumber(2);
double y = L.toNumber(3);
L.pushNumber(x+y);
L.pushNumber(x*y);
return 2;
}
};
addmult.register("addmult");
.
Ora, dovresti ottenere un risultato simile nel tuo codice:
print(addmult(3, 5)) --> 8 13
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow