operaciones - ¿Qué significa el operador ||=en Ruby?
operadores de comparacion ruby (5)
Posible duplicado:
¿Qué significa || = (o igual) en Ruby?
Es difícil buscar esto en Google porque es un símbolo, no texto.
¿Qué quiere decir ||=
?
Y, ¿cómo funciona?
Asigna un valor si aún no está asignado. Me gusta esto:
a = nil
a ||= 1
a = 1
a ||= 2
En el primer ejemplo, a se establecerá en 1. En el segundo, a todavía será 1.
Esta es una ''tarea abreviada'' (vea Ruby Pocket Reference, página 10)
a = a || segundo
(lo que significa que a se le asigna el valor formado por lógico o de a, b
se convierte en
a || = b
Casi todos los operadores tienen una versión abreviada (+ = * = && = etc).
Si b es nulo, asignale a.
a = :foo
b ||= a
# b == :foo
Si b no es nulo, no lo cambies.
a = :foo
b = :bar
b ||= a
# b == :bar
Solo puedo adivinar, pero supongo que significa un operador lógico combinado con la configuración de una variable (como ^ =, + =, * = en otros idiomas)
entonces x ||= y
es lo mismo que x = x || y
x = x || y
edición: he acertado, vea http://phrogz.net/ProgrammingRuby/language.html#table_18.4
x = x || y
x = x || y
significa: usa x si está configurado, de lo contrario asigna y. se puede usar para asegurar que las variables estén al menos inicializadas (a 0, a una matriz vacía, etc.)