Ho giocato con Neko Modules, ma penso di avere dei comportamenti inconsistenti.Cosa si intende per essere "fisicamente uguali" in Haxe?
var funcs = 0;
var objs = 0;
for (i in 0...m.globalsCount())
{
var obj:Dynamic = m.getGlobal(i);
if (Reflect.compareMethods(obj, init))
trace("matched");
if (Reflect.isFunction(obj))
funcs++;
else if (Reflect.isObject(obj))
objs++;
}
trace('Functions: $funcs');
trace('Objects: $objs');
Nel codice precedente, quando lo eseguo la prima volta, ottengo un totale di 4487 funzioni. Se rimuovo una funzione, ricostruire e correre, ho l'atteso 4486.
ho aggiunto il confronto compareMethods
per confrontare il obj
con init
, dove init
è una funzione ho dichiarato nel file principale, ma la traccia non è mai uscita .
Ho dato un'occhiata al suggerimento sul codice per la funzione compareMethods
e mi sono imbattuto nella seguente terminologia: if 'f1' and the 'f2' are **physically** equal
.
Ora, sono entrambe le funzioni e in nessun punto del manuale di Haxe vengono menzionate le funzioni fisiche. Quindi ho una domanda in due parti, davvero.
Che cos'è una funzione fisica e come ottengo il risultato della traccia come ci si aspetterebbe in precedenza? Grazie in anticipo.
so la risposta a questo, ma io voglio sapere che cosa il vostro obiettivo è nel frammento di codice tua postato sopra. Cura di condividere? – bguiz
Speravo di utilizzare il metodo di chiamata delle funzioni da un modulo Neko esterno per consentire la modifica di applicazioni esistenti senza ricompilare, annullando efficacemente la necessità di file ndll/dll che ritengo siano strettamente per obiettivi nativi. – tienery