比方說一個物體上,我們有兩大類:如何檢查鍵/方法可以是哈希以及其他類
class Test
end
class Test2
def a
end
end
,並說我們有一個變量var可以指向的對象這些類或哈希,所以:
var = Test.new
或
var = Test1.new
或
var = {"a" => 1}
現在我們需要確保我們在'var'上調用'a',只要它允許(即,如果它指向測試,則不應調用它)。 所以,如果我做的:
var.a
它給出了一個錯誤的情況下,無功點,測試對象。有什麼辦法可以防止錯誤? (?除了做.is_a測試任何其他解決辦法)
但這不會工作,如果var是散列,是正確的? –
如果使用[OpenStruct](http://ruby-doc.org/stdlib-2.0.0/libdoc/ostruct/rdoc/OpenStruct.html),它將工作。如果沒有,你需要檢查一下密鑰是否出現在'var.key?('a')' –
那麼,那麼同樣的問題:)。做respond_to? .key會不會爲散列工作.key?將會給Test類帶來錯誤。任何我們可以處理的方式? –