Javaのようなクラスが必要だとしますDate
。その唯一のデータメンバーは、1970年以降のミリ秒を表すlongです。
新しいScalaタイプを作成するだけで、パフォーマンス上のメリットが得られるでしょうか。
type PrimitiveDate = Long
次に、intを使用して行われるように、暗黙的な変換を使用してメソッドを追加できますRichInt
。プリミティブ型のリッチクラスへのこの「ボクシング」には、オーバーヘッド(クラスの作成)が含まれますか?基本的には静的メソッドを使用できます
def addMonth(date: PrimitiveDate, months: Int): PrimitiveDate = date + 2592000000 * months
そして、型システムに、コード内に表示されたときに適用する必要があることを理解さd addMonth 5
せます。
編集
書き込みによって作成したエイリアスtype PrimitiveDate = Long
は、scalaコンパイラによって強制されていないようです。Scalaで強制型を作成する唯一の方法は、Longを囲む適切なクラスを作成することですか?
プリミティブ型の強制型エイリアスを作成できると思いますか?