Pregunta

En ActionScript 3, cuando declara un argumento opcional al asignarle un valor predeterminado, el valor nulo no se puede usar en los argumentos escritos.

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

¿Hay soluciones alternativas para esto, o valores de propósito general que puedan aplicarse a todos los tipos de datos?

¿Fue útil?

Solución

Puede cambiar su int a Número y luego puede establecerlo en NaN, que es un número especial que significa "no un número" y esto puede representar su estado nulo para un Número.

Para verificar si algo es NaN, debes usar la función isNaN () y no val == NaN , o no obtendrás lo que esperas.

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

Para todos los demás objetos, puede establecerlos en nulos, pero los números "primitivos" se manejan de manera diferente en ActionScript.

Otros consejos

las variables int no pueden ser nulas, es por eso que obtienes ese error, solo los tipos de referencia como los objetos pueden ser nulos

En su lugar, puede utilizar NaN como un número especial en lugar de nulo. Si desea comprobar si algo es NaN, debe utilizar la función isNaN.

también puede incluir una marca en la firma del método para evitar que el parámetro se pase de int a number:

function whatever(intProvided:Boolean = false, someInt:int = 0):void
{
    if(intProvided)
        doSomeStuff();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top