2011-05-09 5 views
0

Je suis tombé sur une chose étrange dans Flex. J'ai créé une variable entière:Les entiers Actionscript sont-ils des nombres dans le débogueur?

var foo:int = 1; 

Et dans le débogueur, il dit foo est un Nombre avec une valeur de 1.

Ce ne fut pas un trop grave pour moi, mais semble chiffres sont envoyés à la place des entiers lors des appels de service à distance. Qu'est-ce qu'il se passe ici?

+0

Je ne sais pas pourquoi, mais est-ce vraiment un problème? envoyer tout sauf un int ce qui signifie qu'il n'y aura jamais de décimales – Mattias

+0

Peut-être que ce n'est pas un gros problème, mais pour un certain projet, c'est pour moi. J'envoie des paramètres dans AMF au serveur AMF Zend . A cause de ce type de chose, je ne sais pas si le param était un int ou un float. Je peux le convertir de toute façon, ce n'est pas un problème, mais je m'intéresse vraiment à la raison pour laquelle cela se produit. – itarato

Répondre

0

Je pense que la sortie essaie d'être aussi primitive que possible - est ici un exemple fascinant:

var i:int = 1; 
var mc:MovieClip = new MovieClip(); 

trace(typeof(i)); // number 
trace(typeof(mc)); // object 

Est-ce un peu de Reasearch: typeof ne peut retour de ces six résultats:

Array -> object 
Boolean -> boolean 
Function -> function 
int -> number 
Number -> number 
Object -> object 
String -> string 
uint -> number 
XML -> xml 
XMLList -> xml 

"Evalue l'expression et renvoie une chaîne spécifiant le type de données Le résultat est limité à six valeurs de chaînes possibles es: booléen, fonction, nombre, objet, chaîne et xml. Si vous appliquez cet opérateur à une instance d'une classe définie par l'utilisateur, le résultat est l'objet chaîne. L'opérateur typeof est inclus pour la compatibilité descendante . . Utilisez le est opérateur pour vérifier la compatibilité de type »

-1

J'ai trouvé un post intéressant sur les int vs Nombre:. Avoid ints in ActionScript Étant donné que et que int est aussi un objet: ActionScript Reference ce qui se passe est que le débogueur convertira int dans Number et afficher sa valeur peut-être juste parce que Number est un type plus large et peut contenir tous les entiers alors que l'inverse n'est pas vrai

+1

Je vous préviens que l'article lié a presque 6 ans. Les choses ont beaucoup changé en ce moment en ce qui concerne les meilleures pratiques sur quand utiliser quels types de données. De plus, Number est aussi un objet si vous lisez les documents. Toutes les prims sont aussi des objets. – scriptocalypse

+0

Je vous invite à lire avant d'accuser: J'ai dit "j'ai trouvé un post intéressant" qui ne veut pas dire "c'est ma réponse définitive", j'ai dit "int est aussi un objet" ce qui ne signifie pas "nombre est au contraire, il suggère que le nombre est un objet. Je pense toujours que mon message peut aider même s'il ne donne pas de solution et que votre commentaire est plutôt contre-productif. –

+0

Pas d'accusations ici, et certainement je ne suis pas celui qui downvoted. – scriptocalypse

Questions connexes