斯卡拉val和类型在同一时间
问题描述:
在阅读斯卡拉源代码时,我碰到以下scala/package.scala
我不完全明白我们为什么需要trait
和val
在同一时间。 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
,那么您将无法访问这些方法,至少不会使用别名的名称。
哇!有趣的是,当我点击'type'行时,Intellij带我进入类定义,当我点击'val'行时,它将我带入对象定义。 –