Operador Lógico ||= em AS3

Bom, poucas pessoas sabem para que serve o operador lógico “||=”. Vou tentar explicar um pouco sobre ele.

Na documentação da adobe este operador é descrito da seguinte forma: “Assigns expression1 the value of expression1 || expression2.”, traduzindo seria: “Atribui para expressão1 o valor de expressão1 ou da expressão2″. Lembrando que para o operador lógico usamos com sintaxe “expressão1 operador expressão2“.

Vou mostrar em exemplos mais claros como isso funciona.

Exemplo1:

1
2
3
var array:Array; // Variável arr tem o valor nulo.
array ||= ["Bruno Sales"]; // Caso array seja nulo, atribua o valor ["Bruno Sales"]
trace(array.toString()); // Resultado: Novo valor atribuido, trace imprime "Bruno Sales"

Exemplo2:

1
2
3
var array:Array = ["DClick"]; // Variável arr tem o valor ["DClick"].
array ||= ["Bruno Sales"]; // Caso array seja nulo, atribua o valor ["Bruno Sales"]
trace(array.toString()); // Resultado: Váriavel não foi alterada, trace imprime "DClick"

Logo, visualizando a diferença dos 2 exemplos, concluímos que o operador lógico “||=” faz o mesmo que o código abaixo, porém de uma maneira mais “elegante”.

1
2
3
4
5
var array:Array = ["DClick"];
if (array == null)
{
array = ["Bruno Sales"];
}

Espero que tenham gostado. :)


5 comentários

  1. Saulo Brust em 29.ago.09 às 9:19 am

    Boa dica! Não conhecia este operador lógico, e realmente deixa o código mais elegante.

  2. Fabrício em 1.set.09 às 1:17 pm

    Great, nor in java books I found this operator only the basic attribution operators.
    Legal, nem em livros de Java achei esse material somente os operadores basicos de atribuição.

  3. thianolima em 2.set.09 às 6:26 pm

    interessante, mas o q se ganha usando esse operadar ao invez do operador ternario “?” ?

  4. Alexandre Afonso em 23.set.09 às 3:32 pm

    Muito bom esse operador. Vou usar muito!

    vlw!

  5. Fernando Ghisi em 30.set.09 às 1:41 pm

    Interessante conhecer (vai que caia numa prova de certificação!), mas pode criar problemas de compreensão para outros desenvolvedores e fazer uma galera perder tempo à toa.

Deixe Seu Comentário