Ruby "foo = true si! Definido? foo "no funcionará como se esperaba

Cuando de hecho no está definido, obtiene el valornil solo porque fue "tocado":

$ 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 

entonces elif ...end funciona como se esperaba, perofoo = true if ... no lo hace

Respuestas a la pregunta(3)

Su respuesta a la pregunta