【问题标题】:Scala difference between (1 to 4).toSet and (1 to 4).to[scala.collection.immutable.Set]?(1 到 4).toSet 和 (1 到 4).to[scala.collection.immutable.Set] 之间的 Scala 区别?
【发布时间】:2019-07-03 23:07:46
【问题描述】:

(1 to 4).to[scala.collection.immutable.Set](1 to 4).toSet 之间的 Scala 区别?

scala> (1 to 4).toSet
res37: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4)

scala> (1 to 4).to[scala.collection.immutable.Set]
res38: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4)

scala> (1 to 4).to[Set]
res39: Set[Int] = Set(1, 2, 3, 4)

scala> Set(1 to 4:_*)
res14: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4)

【问题讨论】:

    标签: scala collections


    【解决方案1】:

    如果看toSet的实现:

    def toSet[B >: A]: immutable.Set[B] = to[immutable.Set].asInstanceOf[immutable.Set[B]]
    

    您可以看到它只是to[] 的别名。所以它是一样的。
    请注意,从 Scala 2.13 及更高版本开始,它是 to(Set)。见docrelease note

    【讨论】:

    • 'def toSet[B >: A]: immutable.Set[B] = to[i...' 来自哪里?
    • scala.collection.Iterable
    【解决方案2】:

    应该都是一样的,Set 就是这样的别名

    type Set[A] = immutable.Set[A]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-01
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      • 2018-05-05
      相关资源
      最近更新 更多