斯卡拉val和类型在同一时间

问题描述:

在阅读斯卡拉源代码时,我碰到以下scala/package.scala 我不完全明白我们为什么需要traitval在同一时间。 trait关键字会为班级别名,那么为什么我们需要val斯卡拉val和类型在同一时间

type StringBuilder = scala.collection.mutable.StringBuilder 
    val StringBuilder = scala.collection.mutable.StringBuilder 

    // Numeric types which were moved into scala.math.* 

    type BigDecimal = scala.math.BigDecimal 
    val BigDecimal = scala.math.BigDecimal 

    type BigInt = scala.math.BigInt 
    val BigInt = scala.math.BigInt 

    type Equiv[T] = scala.math.Equiv[T] 
    val Equiv = scala.math.Equiv 

上午,包括泛型类型实例以及获取有关多次声明更多的理解有良好。

这是因为type只定义了一个类型别名;它不会别名类型的伴侣对象。

伴侣对象通常包含方便的方法,特别是用于创建类型对象的方法apply。如果您没有执行val,那么您将无法访问这些方法,至少不会使用别名的名称。

+0

哇!有趣的是,当我点击'type'行时,Intellij带我进入类定义,当我点击'val'行时,它将我带入对象定义。 –