在 scala 中使用伴生对象我有点困惑。当您想提供多个构造函数时,通常会声明一个伴生对象并重载该apply
方法。但是这两种方式有什么区别呢?:
case class Node(....)
object Node {
def apply(...) = new Node(....) // 1 way
def apply(...) = Node(...) // second way
}
我见过的几乎所有示例都使用第一种形式:
- 何时使用伴随对象工厂与 new 关键字
- Scala中的“新”关键字
- http://alvinalexander.com/scala/how-to-create-scala-object-instances-without-new-apply-case-class
但我的代码似乎使用两种形式都一样。只有当我们有一个普通的类时,使用new
关键字才有意义?(不是案例类)?