2012-08-07 135 views
4

我誤差undefined variable,我知道如果用作布爾nil進行評估,以false未定義的變量在Ruby中等於零?

if y 
    puts "Something" 
end 
+0

這兩個答案都是正確的,檢查這個主題的更多細節http://www.rubyist.net/~slagell/ruby/localvars.html – PriteshJ 2012-08-07 09:55:36

回答

11

未定義的變量不等於零。

未定義實例變量返回nil(同樣,如果未定義)。

y拋出一個異常

@y返回nil

9

沒有,你會得到一個錯誤undefined local variable or method。但是,如果你想查詢的東西是否被定義或沒有,你可以使用defined?方法這樣

if defined?(my_var) 
    print 'defined' 
else 
    print 'not defined' 
end 
2

有一個輕微的皺紋這一點。試試這個:

if 5 == 0 
    y = 'hi' 
end 

puts "hello" if y 

y已被「定義」在if塊中。刪除該塊,這給出了一個錯誤。