Scala伴生对象

大部分Scala的单例对象不是单独存在的,而是同时存在相同名称的类。此时这个单例对象是“类”的伴生对象,而类则是“单例对象”的伴生类。类与它的伴生对象必须在同一个资源文件内。

例如:

case class NumberPair(num1: Int, num2: Int)


case class Sum(sumResult: Int)


object NumberPair {
  implicit def add: NumberPair => Sum = {
    np => Sum(np.num1 + np.num2)
  }
}
val np = NumberPair(1, 2)


println(np.sumResult)


此时输出结果为:

3


上面的例子中,伴生对象的成员属性/方法会自动被搜索到和并关联。