2010-01-08 9 views

Respuesta

7

Esto asignará a barfoo si (y sólo si) es foonil o false.

EDITAR: o falso, gracias @mopoke.

+0

O si foo es falso. – mopoke

2

Assign bar-foo menos foo es un valor verdadero (no false o nil).

+2

Debería ser: a menos que 'foo' sea verdadero, donde truthy significa: no' false' o 'nil'. – yfeldblum

1

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

Cuestiones relacionadas