我正在編寫一個小的Heap實現,並且在創建我的Node類時,我注意到了一些奇怪的行爲。我想調用defined?(x)
以確保已定義x
,然後在將其存儲到Node的值類變量中之前,檢查x
是否爲Integer。在IRB中,我可以撥打 defined?(x)
,結果爲零。定義?在Ruby中工作在irb中但不在我的類文件中
然而,在班上,我試試這個:
def change_value value
@value = value if defined?(value)
end
,當我打電話change_value
用隨機字母的結果,讓我們說「E」,是標準定義的局部變量或方法的錯誤。同樣,在IRB中,它似乎工作正常,我想知道我是否有某種環境問題,或者如果這不是檢查價值是否真的存在的「最佳」方法。
謝謝。
+1最後一個例子。 – 2009-11-10 08:11:38