【问题标题】:Why do I get a List when I create a Seq为什么创建Seq时得到的是List
【发布时间】:2022-12-09 11:48:54
【问题描述】:

为什么我使用以下代码创建Seq时得到的是List?

    scala> val s = Seq[Int]()
    s: Seq[Int] = List()

实际上,Seq是一个trait,trait是不能初始化的。幕后的魔法是什么

【问题讨论】:

    标签: scala


    【解决方案1】:

    Seq 是一个特征,List 是一个(默认)实现。

    object Seq extends SeqFactory.Delegate[Seq](List)
    //                                          ^^^^
    

    https://github.com/scala/scala/blob/v2.13.10/src/library/scala/collection/immutable/Seq.scala#L39

    【讨论】:

      【解决方案2】:

      您从 Seq 伴随对象调用了 applyapply的实现返回了一个List[Int],它是Seq[Int]的一个实例

      【讨论】:

        猜你喜欢
        • 2013-03-15
        • 2019-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-07
        • 1970-01-01
        • 2013-04-23
        相关资源
        最近更新 更多