Scala val和同时输入

时间:2015-11-25 23:03:10

标签: scala

在阅读Scala源代码时,我在scala/package.scala中遇到了以下内容 我不明白为什么我们需要同时traitvaltrait关键字会为该类别名,那么为什么我们需要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

还包括一个Generic Type示例,以便更好地理解那里的多个声明。

1 个答案:

答案 0 :(得分:7)

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

伴侣对象通常包含方便的方法,尤其是用于创建该类型对象的apply方法。如果您不执行val,则无法访问这些方法,至少不能使用别名。