我嘗試將以下特徵混合到我的類中,以享受類似Boolean
類型的行爲。如何使用閉集的值創建您自己的類型,在Scala
trait ReadyStates { // well, this is really used like an enumeration
class ReadyState
object Ready extends ReadyState
object NotReady extends ReadyState
}
但是,這不起作用,因爲這個特徵混入的每個類都創建它自己的對象。所以當在不同類的成員之間傳遞返回值時,Ready
不可能天真地與Ready
比較。
我怎樣才能得到一個自定義類型,它有自己的一組允許值,與布爾值相同true
和false
,它們可以跨類進行無縫比較?
我看了一下枚舉,他們當時看起來並不很亮。
謝謝!
似乎'ReadyStates'應該只是一個'object',其他類只是使用它的子類型?另外考慮讓'ReadyState'密封和抽象。 – 2015-02-07 21:17:09
這意味着'ReadyStates.Ready'需要使用的地方。不太像「真」和「假」。但是,它的工作原理! – matanster 2015-02-07 21:23:25
如果你輸入了blah.package.name.ReadyStates._' – 2015-02-07 21:24:33