2010-01-08 88 views

回答

7

如果(且仅当)foonilfalse,这将分配barfoo

编辑:或错误,谢谢@mopoke。

+0

或者如果foo是假的。 – mopoke 2010-01-08 03:02:11

2

分配barfoo除非foo是一个真值(未falsenil)。

+2

应该是:除非'foo'是真实的,否则truthy的意思是:不是'false'或'nil'。 – yfeldblum 2010-01-08 03:04:58

1

如果你使用它的一个实例变量,你可能希望避免它。那是因为

@foo ||= bar 

如果@foo之前未初始化,可以发出警告。您可能需要使用取决于你是否要仅仅检查,如果@foo被初始化,或者检查是否有@foo感实性

@foo = bar unless defined?(@foo) 

@foo = bar unless (defined?(@foo) and @foo) 

(即不nilfalse) 。