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. 🙂
Boa dica! Não conhecia este operador lógico, e realmente deixa o código mais elegante.
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.
interessante, mas o q se ganha usando esse operadar ao invez do operador ternario “?” ?
Muito bom esse operador. Vou usar muito!
vlw!
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.