Pergunta

No ActionScript 3, quando você declarar um argumento opcional, dando-lhe um valor padrão, o valor nulo não pode ser usada em argumentos digitados.

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

Qualquer soluções para este, ou valores de uso geral que pode ser aplicado a todos os tipos de dados?

Foi útil?

Solução

Você pode mudar sua int para o número e, em seguida, pode configurá-lo para NaN que é um número especial que significa 'não é um número' e isso pode representar o seu estado nulo para um número.

Para verificar se algo é NaN, você deve usar a função isNaN () e não val == NaN, ou você não vai conseguir o que você espera.

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

Para todos os outros objetos, você pode configurá-los como nulo, mas os números 'primitivas' são tratados de forma diferente em Actionscript.

Outras dicas

variáveis ??int não pode ser nulo, é por isso que você recebe esse erro, somente tipos de referência como objetos pode ser nulo

Em vez disso você pode usar NaN como um número especial, em vez de null. Se você quiser verificar se algo é NaN você mus usar a função isNaN.

Você também pode incluir uma bandeira na assinatura do método para evitar ter o parâmetro promovido de int para o número:

function whatever(intProvided:Boolean = false, someInt:int = 0):void
{
    if(intProvided)
        doSomeStuff();
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top