2010-02-23 9 views
1
if(true) { 
    var a:int = 1; 
} 
else { 
    var a:int = 2; 
} 

Dans le code ci-dessus actionscript je reçois la définition des variables en double
erreur parce que « a » a été déclaré deux fois.
Mais, "a" n'existe-t-il pas dans deux portées "différentes"?Actionscript définition variable dupliqués

Y at-il une façon élégante de supprimer cet avertissement, plutôt que de tirer
« a » sur les deux champs d'application et le déplacement à l'extérieur
bloc if?

J'ai besoin de cette solution alternative car il y a trop d'endroits
dans un code que je dois refactoriser.

Répondre

3

yup, tout ce que vous devez faire est

if(true) { 
    var a:int = 1; 
}else { 
    a= 2; 
} 

et votre erreur sera parti

+0

a marché pour moi. Merci beaucoup!! –

4

Non, en JavaScript, ActionScript n'a qu'une seule portée-fonction possible. {} ne crée pas de nouvelle portée, seulement function() {} fait.

0

Il n'y a pas de solution élégante, autre que d'extraire la variable ou la deuxième fois en faisant simplement référence à la variable, sans la déclarer.

Découvrez cette réponse ainsi:

want to remove warnings:

0

Vous devez toujours déclarer votre variables avant de les appeler dans la fonction, toujours un moyen plus sûr de coder sans courir dans les erreurs de duplication.

var a:int; 

if(true) { 
    a= 1; 
} 
else { 
    a= 2; 
} 

Bonne chance

Questions connexes