Scala的Set()和Set.empty有什么区别?

7fhtutme  于 2022-12-13  发布在  Scala
关注(0)|答案(3)|浏览(205)

Scala中Set()Set.empty的区别是什么?
哪个更规范,哪个更有表现力?

cngwdvgl

cngwdvgl1#

Set()实际上是在幕后调用Set.empty,因此后者的性能要高出一小部分:
https://github.com/scala/scala/blob/2.12.x/src/library/scala/collection/generic/GenericCompanion.scala#L49
此外,您可能更喜欢Set.empty,因为它的可读性更好。

zy1mlcev

zy1mlcev2#

我找到了Set.empty的一个实现,它可能更有效一些。
https://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_9_1_final/src//library/scala/collection/immutable/Set.scala#L1
我个人更喜欢使用命名工厂方法而不是构造函数,但有人可能会说它更冗长和无用。
这取决于你。

qpgpyjmq

qpgpyjmq3#

随便设置s是空的Set()实际上是在幕后调用Set.empty,所以后者的性能要高出一小部分:

相关问题