1
我定義的包裝類的首要等於:階:基本類型
class Wrapper[T](private val value: T)
,我想確保W(V1)== v2和V2 = W(V1)當且僅當V1 = = v2。第一部分很簡單,因爲您可以覆蓋Wrapper類的equals方法。但問題是相反的,使得5 == Wrapper(5)例如返回true,實現了相等的對稱性。是否有可能在Scala中,您可以重寫像Int或String這樣的基本類型的equals方法?在C++中,你可以覆蓋運算符==(A,int)和運算符==(int,A),但對java或scala來說似乎不那麼重要。
第一部分IMO也並不容易:'equals'具有簽名'等於(X:任何):布爾和'T'被擦除。 –
你真的需要'=='嗎?很容易在兩個方向上定義獨立方法,或者隱式定義另一種方法。您無法真正覆蓋'Int'中的'==',因爲它已經在那裏了。 –