Domanda

In ActionScript 3, quando si dichiara un argomento facoltativo assegnandogli un valore predefinito, il valore null non può essere utilizzato su argomenti digitati.

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

Qualche soluzione alternativa per questo o valori di utilizzo generale applicabili a tutti i tipi di dati?

È stato utile?

Soluzione

Puoi modificare il tuo int in Numero e quindi impostarlo su NaN che è un numero speciale che significa 'non un numero' e questo può rappresentare il tuo stato nullo per un Numero.

Per verificare se qualcosa è NaN, devi usare la funzione isNaN () e non val == NaN , altrimenti non otterrai ciò che ti aspetti.

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

Per tutti gli altri oggetti, è possibile impostarli su null, ma i numeri "primitivi" sono gestiti in modo diverso in Actionscript.

Altri suggerimenti

Le variabili int non possono essere nulle, ecco perché si ottiene quell'errore, solo i tipi di riferimento come gli oggetti possono essere nulli

Invece puoi usare NaN come numero speciale anziché null. Se vuoi verificare se qualcosa è NaN, devi usare la funzione isNaN.

potresti anche includere un flag nella firma del metodo per evitare che il parametro venga promosso da int a numero:

function whatever(intProvided:Boolean = false, someInt:int = 0):void
{
    if(intProvided)
        doSomeStuff();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top