2017-09-23 10 views
3

Je suis Alex ... Bonjour à tous!haxe/openfl :: la comparaison échoue dans neko mais fonctionne dans html5

et j'ai un problème assez "simple".

class Main2 extends Sprite 
{ 
    public function new() 
    { 
     super(); 
     var a = callbackFunc; 
     var b = callbackFunc; 

     if (a == b) 
      trace("success"); 
     else  
      trace("Failed"); 
    } 
    private function callbackFunc():Void 
    { 

    } 
} 

Lors de la compilation à tout html5 cible est bien ... en Neko il trace « a échoué » ... N'a pas trouvé quelque chose d'utile dans le filet qui pourrait expliquer le problème ... Des idées?

Cordialement,

Alex

Répondre

4

Utilisez Reflect.compareMethods() - cela devrait fonctionner sur toutes les cibles:

if (Reflect.compareMethods(a, b)) 
    trace("success"); 
else  
    trace("Failed"); 

L'opérateur de comparaison n'est pas spécifié de toujours travailler sur les fonctions, cela dépend de la cible .

+1

L'opérateur d'égalité dépend également du type de fonction: sur Neko, il peut très bien gérer les fonctions statiques. Mais il est préférable d'utiliser l'API 'Reflect'-ion et de faire abstraction de ces différences de cible. –