2013-11-20 14 views
-4

這是overwite的===方法有道:覆寫===方法以及如何調用它

def ===(b) 
    self.venue === b.venue 
    print " new === !!!!" 
end 

,如何調用它的對象ab誰(作爲同一類的實例)都有變量venue?我試過puts a.===(b)但它不起作用。 (它說private method called for #<class1:0xsdfsd...>

+0

你能提供更廣泛的上下文嗎?你在哪裏定義你的方法? –

+1

您的錯誤信息是不夠的。它說什麼是私人的方法?這種方法是什麼類? – sawa

回答

1

是的,它覆蓋===方法有道

可以調用此方法。

a === b 

a.===(b) 

你有這樣的錯誤可能是因爲您將===方法定義爲私有方法。將其定義爲公共方法(關鍵字private以上),它應該工作。

1

該方法應返回truefalse,在這種情況下,您打印某些內容並且返回值始終爲零。嘗試改變順序並首先使用打印。

儘管可以使用===調用它,但在case-statement或grep方法中使用該運算符會更常見。

相關問題