Scala 中 Set 的伴随对象

Companion object for Set in Scala

来自书 'Programming in Scala',这样做:

var jetSet = Set("Boeing", "Airbus")

在 scala.collection.immutable.Set 的伴生对象上调用 'apply', returns 默认的不可变 Set 实例。

但是没有为同名的 class 定义伴生对象,而且 scala.collection.immutable.Set 是一个特征而不是 class.So 为什么我们有一个特征的伴生对象?

Scala 允许您为特征和 classes 定义伴生对象。

试一试:

trait Foo

object Foo {
    def apply(x: Int): Foo = new Foo { }
}

在这个例子中,伴生对象 returns 类型 Foo 的实例实现为扩展特征的匿名 class。