Técnico

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:

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:

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

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”.

var array:Array = ["redspark"];
if (array == null)
{
array = ["Bruno Sales"];
}

Espero que tenham gostado. 🙂

Autor(a)

Bruno Sales

Comentários (5)

  1. Saulo Brust
    29 de agosto de 2009

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

  2. Fabrício
    1 de setembro de 2009

    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
    2 de setembro de 2009

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

  4. Alexandre Afonso
    23 de setembro de 2009

    Muito bom esse operador. Vou usar muito!

    vlw!

  5. Fernando Ghisi
    30 de setembro de 2009

    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 um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *