Question

Dans ActionScript 3, lorsque vous déclarez un argument facultatif en lui attribuant une valeur par défaut, la valeur null ne peut pas être utilisée sur les arguments typés.

function Action(Param:int=null){
    // 1184: Incompatible default value of type Null where int is expected.
}
function Action(Param:int=0){
    // No compiler errors
} 

Des solutions à ce problème ou des valeurs d'usage général pouvant s'appliquer à tous les types de données?

Était-ce utile?

La solution

Vous pouvez modifier votre int en Number, puis le définir sur NaN, un numéro spécial signifiant "pas un nombre", ce qui peut représenter l'état null pour un nombre.

Pour vérifier si quelque chose est NaN, vous devez utiliser la fonction isNaN () et non val == NaN , sinon vous n'obtiendrez pas ce que vous espériez.

function Action(param:Number = NaN) : void {
    trace(param);
}

Pour tous les autres objets, vous pouvez les définir sur null, mais les nombres 'primitifs' sont gérés différemment dans Actionscript.

Autres conseils

Les variables int ne peuvent pas être nulles, c'est pourquoi vous obtenez cette erreur, seuls les types de référence tels que les objets peuvent être nuls

À la place, vous pouvez utiliser NaN en tant que nombre spécial au lieu de null. Si vous voulez vérifier si quelque chose est NaN, vous devez utiliser la fonction isNaN.

vous pouvez également inclure un indicateur dans la signature de la méthode pour éviter que le paramètre ne soit promu d'int au nombre:

function whatever(intProvided:Boolean = false, someInt:int = 0):void
{
    if(intProvided)
        doSomeStuff();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top