假设我想要一个像 Java 这样的类Date
。它唯一的数据成员是一个 long 表示自 1970 年以来的毫秒数。
仅创建一个新的 Scala 类型会/是否有任何性能优势:
type PrimitiveDate = Long
然后您可以使用隐式转换添加方法,就像对 int with 所做的那样RichInt
。这种将原始类型“装箱”到富类中是否涉及任何开销(类创建)?基本上你可以有一个静态方法
def addMonth(date: PrimitiveDate, months: Int): PrimitiveDate = date + 2592000000 * months
并让类型系统确定当它d addMonth 5
出现在您的代码中时必须应用它。
编辑
您通过编写创建的别名似乎type PrimitiveDate = Long
不是由 scala 编译器强制执行的。是创建一个适当的类,包含 Long,这是在 Scala 中创建强制类型的唯一方法吗?
您认为能够为原始类型创建强制类型别名有多大用处?