Ruby's "foo = true if! Defined?" foo ”funktioniert nicht wie erwartet

Wenn es tatsächlich nicht definiert ist, erhält es den Wertnil nur weil es "berührt" wurde:

$ irb

ruby-1.9.2-p0 > foo = true if !defined? foo
 => nil 
ruby-1.9.2-p0 > foo
 => nil 

ruby-1.9.2-p0 > if !defined? bar
ruby-1.9.2-p0 ?>  bar = true
ruby-1.9.2-p0 ?>  end
 => true 
ruby-1.9.2-p0 > bar
 => true 

so theif ...end funktioniert wie erwartet, aberfoo = true if ... nicht.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage