2010-03-13 4 views
0

J'utilise String.split pour analyser une chaîne de ligne de commande dans un tableau de chaînes. Le résultat est ensuite utilisé pour appeler une fonction à l'aide de l'API Function.apply.Parse valeurs booléennes dans les chaînes à utiliser avec Function.apply

Si apply(null, ["17"]) est appelée avec cette fonction:

static function test(foo:int):void 
{ 
    trace(foo, typeof(foo)); 
} 

fonctionne comme prévu (sortie: 17 number).

Toutefois, l'appel apply(null, ["false"]) ou apply(null, ["0"]) avec cette fonction:

static function test(foo:Boolean):void 
{ 
    trace(foo, typeof(foo)); 
} 

ne fonctionne pas (résultat attendu: false Boolean; sortie réelle: true Boolean).

Existe-t-il un moyen de lui faire reconnaître "true" et "false" (ou autre chose) comme des valeurs booléennes, tout comme il le fait avec les chaînes numériques? Idéalement, "true" et "false" devraient également rester des valeurs de chaîne valides.

Répondre

2

Non, il n'y a pas de méthode intégrée pour interpréter les chaînes "true" et "false" comme des booléens. En ActionScript et dans d'autres langages de script ECMA, la seule valeur de chaîne évaluée comme boolean false est une chaîne vide, "". Toute chaîne de longueur est évaluée comme vraie dans une expression booléenne, y compris les chaînes "false" et "0". En pratique, ceci est rarement un gros problème, car il est assez facile de faire une comparaison de chaînes. Un tas de suggestions ici: How can I convert a string to boolean in JavaScript?

Questions connexes