4
Scala中可能創建類似別名的東西可用於強制某些條件嗎?是的,我知道,這聽起來有點奇怪,但讓我說明我的意思。在Scala中強制使用別名類型
比方說,我們只想要正整數類型java.lang.Integer
。這個類當然也允許負整數,所以在只允許正整數的情況下使用這種類型是不夠的。我的含糊想法是有一個像「強制類型別名」。
// vague idea
object PositiveInteger {
import java.lang.{Integer, Math}
type PositiveInteger = Integer // something like this, but enforced
def apply(value: Int) = new PositiveInteger(Math.abs(value))
}
然後,我想就能夠定義的參數和類型PositiveInteger
的價值觀和依靠的事實,他們是積極的:
def calculate(value: PositiveInteger) = ...
我想避免在另一個包裝類(值)類,因爲我需要重複所有的方法或總是從外部訪問一個包含包裝對象的字段。
據我所知,這在斯卡拉是不可能的,但也許你知道一種方法來實現這一點。你做?