2012-10-29 27 views

回答

6

這是由變量在Ruby中初始化的方式引起的,這種方式對於這種語言來說是相當獨特的。基本上,紅寶石初始化(創建)一個變量,如果它可能得到賦值。考慮下面這個例子:

if false 
    x = "hello" 
end 

x肯定不會在這裏得到分配"hello"字符串。但是,它仍然會得到與nil從靜態分析程序初始化,它可能已被分配。

你舉的例子是類似的。因爲你指定的東西x,它會被用在執行語句前nil初始化。因此,在執行期間,x實際上是nil

相關問題