用于拼接列表的 ":::" 和 "++" 之间的区别
用于拼接列表的 ":::" 和 "++" 之间的区别
这个问题已经有了答案:
可能是重复的问题:
在Scala中,假设我有两个列表
scala> val oneTwo = List(1,2) oneTwo: List[Int] = List(1, 2)
和
scala> val threeFour = List(3,4) threeFour: List[Int] = List(3, 4)
我可以通过以下方式连接列表:
scala> oneTwo ::: threeFour res30: List[Int] = List(1, 2, 3, 4)
或
scala> oneTwo ++ threeFour res31: List[Int] = List(1, 2, 3, 4)
这两种方法的区别是什么?
谢谢。
admin 更改状态以发布 2023年5月21日
文档中提到:
::: [B >: A](prefix : List[B]) : List[B]
++ [B >: A](that : Iterable[B]) : List[B]
你可以看到++
适用于任何Iterable
,而:::
则是特别适用于List
类型。
scala> val oneTwo = List(1,2) oneTwo: List[Int] = List(1, 2) scala> val threeFour = List(3,4) threeFour: List[Int] = List(3, 4) scala> val fiveSix = Array(5,6) fiveSix: Array[Int] = Array(5, 6) scala> oneTwo ++ fiveSix res2: List[Int] = List(1, 2, 5, 6) scala> oneTwo ::: fiveSix:10: error: value ::: is not a member of Array[Int] oneTwo ::: fiveSix