Duplicar posibles:
What does ||= (or equals) mean in Ruby?¿Qué significa el operador || = en Ruby?
Es difícil buscar esto en Google, ya que es un símbolo, no texto.
¿Qué significa ||=
?
¿Y cómo funciona?
Duplicar posibles:
What does ||= (or equals) mean in Ruby?¿Qué significa el operador || = en Ruby?
Es difícil buscar esto en Google, ya que es un símbolo, no texto.
¿Qué significa ||=
?
¿Y cómo funciona?
Asigna un valor si no está ya asignado. De esta manera:
a = nil
a ||= 1
a = 1
a ||= 2
En el primer ejemplo, una se establecerá en 1. En la segunda, un todavía habrá 1.
Sólo puedo imaginar, pero supongo que significa que un operador lógico combinado con el establecimiento de una variable (como^=, + =, * = en otros idiomas)
por lo x ||= y
es lo mismo que x = x || y
edición: supuse derecha, veo http://phrogz.net/ProgrammingRuby/language.html#table_18.4
x = x || y
significa: uso x si se establece, de lo contrario asignar y. se puede usar para asegurar que las variables estén al menos inicializadas (a 0, a una matriz vacía, etc.)
Si b es nulo, asignar una a ella.
a = :foo
b ||= a
# b == :foo
Si b no es nada, no lo cambie.
a = :foo
b = :bar
b ||= a
# b == :bar
Esta es una 'asignación abreviada' (ver Rubí Pocket Reference, página 10)
a = a || b
(lo que significa una se le asigna el valor formado por lógica o de a, b
convierte
a || = b
Casi todos los operadores tener una versión abreviada (+ = * = & & = etc).
se ve un poco como el SQL 'operador coalesce' –
Gracias... Sólo se asegura de que el valor actual de la variable no se sobrescribe. –
Este i es bueno Algo C# puede inspirar. :-) –