From: Arie Kusuma Atmaja Date: 2008-04-11T16:31:13+09:00 Subject: Re: var = nil if false; p var.nil? #=> true | bug of the day ? On 11/04/2008, Dave Thomas wrote: > On Apr 11, 2008, at 12:14 AM, Arie Kusuma Atmaja wrote: > > > I tested it using Ruby 1.8.6 patch 111 and also Ruby 1.9.0 (revision > 15968). > > > > var = nil if false > > var.nil? #=> true > > > > Ruby sees you have a local variable called 'var'. It hasn't been given a > value, and so is nil. Ok, I got it, thanks Dave. m:x arie$ irb19 irb(main):001:0> a = 1 => 1 irb(main):002:0> a => 1 irb(main):003:0> a = nil if false => nil irb(main):004:0> exit m:x arie$ irb19 irb(main):001:0> a = nil if false => nil irb(main):002:0> a => nil irb(main):003:0> exit m:x arie$ irb19 irb(main):001:0> a NameError: undefined local variable or method `a' for main:Object from (irb):1 from /opt/local/ruby19/bin/irb19:12:in `
' irb(main):002:0> a = 'nothing' if false => nil irb(main):003:0> a => nil irb(main):004:0> exit > Dave -- blog: http://tinyurl.com/2bjgvn, ruby: http://www.ruby-lang.org/id/about "Developer Time is expensive... Servers are cheap...", Ezra Zygmuntowicz - Merb