Hvorfor kan ikke skrives valgfrie argumenter har en standard av Null?

stemmer
6

I Actionscript 3, når du deklarerer en valgfri argument ved å gi det en standardverdi, verdien null kan ikke benyttes på type argumenter.

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

Noen midlertidig løsning på dette, eller universal verdier som kan gjelde for alle datatyper?

Publisert på 16/06/2009 klokken 18:15
kilden bruker
På andre språk...                            


3 svar

stemmer
5

int variabler kan ikke være null, det er derfor du får denne feilen, kan bare referanse typer som gjenstander være null

I stedet kan du bruke NaN som et spesielt nummer i stedet for null. Hvis du ønsker å sjekke om noe er NaN du mus bruker isNaN funksjonen.

Svarte 16/06/2009 kl. 18:18
kilden bruker

stemmer
9

Du kan endre din int til nummer, og deretter kan sette den til NaN som er et spesielt nummer som betyr 'ikke et tall', og dette kan representere null tilstand etter et nummer.

For å sjekke om noe er NaN, må du bruke isNaN () funksjon og ikke val == NaN, eller vil du ikke få det du forventer.

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

For alle andre objekter, kan du sette dem til null, men 'primitive' tall håndteres annerledes i Actionscript.

Svarte 16/06/2009 kl. 18:26
kilden bruker

stemmer
0

du kan også inkludere et flagg i metoden signaturen for å unngå at parameteren forfremmet fra int til nummer:

function whatever(intProvided:Boolean = false, someInt:int = 0):void
{
    if(intProvided)
        doSomeStuff();
}
Svarte 18/06/2009 kl. 17:58
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more