【问题标题】:Difference between initialization of empty ArrayBuffer using either "ArrayBuffer.empty[A]" or "ArrayBuffer[A]()" in Scala在 Scala 中使用“ArrayBuffer.empty[A]”或“ArrayBuffer[A]()”初始化空 ArrayBuffer 的区别
【发布时间】:2020-07-18 01:54:18
【问题描述】:

我刚开始学习 Scala,遇到了两种初始化空 ArrayBuffer 的语法,它们是:

  1. ArrayBuffer.empty[A]
  2. ArrayBuffer\[A]()

在使用它们方面是否有任何区别或偏好,因为当添加和播放元素时两者都会产生相同的结果?

【问题讨论】:

    标签: scala scala-collections


    【解决方案1】:

    它们是相同的,正如source code所见证的那样:

    def empty[A]: ArrayBuffer[A] = new ArrayBuffer[A]()
    

    并非所有类型都提供<type>[Element]() 形式的初始化(例如,参见Option),但<type>.empty[Element] 非常通用,因此即使它显得多余和冗长也可以使用。

    【讨论】:

    • 我已删除我的答案以避免重复,但您可能想在 2.12 中提及 apply 调用 empty 而不是反过来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    相关资源
    最近更新 更多