2010-01-08 27 views

Antwort

7

wird diese bar-foo zuweisen, wenn (und nur dann) foonil oder false ist.

EDIT: oder falsch, danke @mopoke.

+0

Oder wenn foo falsch ist. – mopoke

2

Assign bar-foo es sei denn foo ist ein wahrer Wert (nicht false oder nil).

+2

Sollte sein: wenn nicht "foo" truthy ist, wo truthy bedeutet: nicht "false" oder "nil". – yfeldblum

1

Wenn Sie es für eine Instanz Variable verwenden, können Sie es vermeiden wollen. Das ist, weil

@foo ||= bar 

Kann eine Warnung auslösen, wenn @foo zuvor wurde nicht initialisiert. Sie können

@foo = bar unless defined?(@foo) 

oder

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

je nachdem, ob Sie lediglich überprüfen, ob @foo initialisiert wird, oder überprüfen Sie verwenden möchten, wenn @foo Truthiness hat (dh nicht nil oder false) .