He estado usando Rubí desde hace un tiempo, y sigo viendo esto:|| = hacer en Ruby
foo ||= bar
¿Qué es?
He estado usando Rubí desde hace un tiempo, y sigo viendo esto:|| = hacer en Ruby
foo ||= bar
¿Qué es?
Esto asignará a bar
foo
si (y sólo si) es foo
nil
o false
.
EDITAR: o falso, gracias @mopoke.
Assign bar
-foo
menos foo
es un valor verdadero (no false
o nil
).
Debería ser: a menos que 'foo' sea verdadero, donde truthy significa: no' false' o 'nil'. – yfeldblum
operador || = es una forma abreviada de la expresión:
x = x || "Default"
operador || = puede ser la abreviatura de código como:
x = "(algunos valor de retorno)" si x.nil?
Desde: http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Operators
Si se está usando para una variable de instancia, es posible que desee evitar. Esto se debe a
@foo ||= bar
puede elevar una advertencia si se @foo
no inicializado previamente. Es posible que desee utilizar
@foo = bar unless defined?(@foo)
o
@foo = bar unless (defined?(@foo) and @foo)
dependiendo de si desea comprobar simplemente si @foo es inicializado, o comprobar si tiene @foo truthiness (es decir, no es nil
o false
) .
O si foo es falso. – mopoke