2009-08-06 7 views
1
 
If I use an Assignment within conditional, for e.g. 
if(userType='admin') 
Flex throws a warning,unlike Java, which throws an error. 
Why should Flex be doing this, despite being one of the newest languages? 

1100: Assignment within conditional. Did you mean == instead of =? 

Répondre

1

Parce que les affectations ont une valeur en Actionscript, ce qui rend cette syntaxe juridique, et ils n'ont pas une valeur en Java, ce qui en fait ne pas. La différence vient du fait que, malgré les Java-izations récentes, ActionScript est issu d'ECMAScript. D'autres conséquences de cette conception sont la possibilité de faire des déclarations comme ceci:

var foo:Number = 0; 
var bar:Number = 0; 
foo = bar = 2; 
assertEquals(2, foo); 
assertEquals(2, bar); 

OMI, c'est le meilleur comportement, il pourrait avoir - il ne rompt pas la compatibilité avec les anciennes versions de Actionscript, et il ne supprime pas fonctionnalité de la langue dans le but de la main, mais il apporte une erreur commune à l'attention de l'utilisateur.

0

Je suppose que le compilateur corrige automatiquement le problème?

Il est intéressant que Flex fasse cela.

(et d'ailleurs, ce n'est pas « Flex », il est Actionscript 3)

Questions connexes