为什么使用 Collection.empty[T] 而不是 new Collection[T]()

Tre*_*xXx 1 scala

我想知道是否有充分的理由使用Collection.empty[T]而不是new Collection[T]()(或相反)?还是只是个人喜好?

谢谢。

Pet*_*lák 5

new Collection[T]()每次调用都会创建一个新实例。另一方面,Collection.empty[T]很可能总是返回相同的单例object,通常在某处定义为

object Empty extends Collection[Nothing] ...
Run Code Online (Sandbox Code Playgroud)

这会快得多。编辑:这仅适用于不可变集合,每次empty调用可变集合时都必须返回一个新实例。