Scala 列表串联,::: 与 ++

2023-11-25

有什么区别吗::: and ++在 Scala 中连接列表?

scala> List(1,2,3) ++ List(4,5)
res0: List[Int] = List(1, 2, 3, 4, 5)

scala> List(1,2,3) ::: List(4,5)
res1: List[Int] = List(1, 2, 3, 4, 5)

scala> res0 == res1
res2: Boolean = true

From 文档看起来像++更一般化,而::: is List-具体的。提供后者是因为它在其他函数式语言中使用吗?


遗产。 List 最初被定义为看起来像函数式语言:

1 :: 2 :: Nil // a list
list1 ::: list2  // concatenation of two lists

list match {
  case head :: tail => "non-empty"
  case Nil          => "empty"
}

当然,Scala 以一种特殊的方式发展了其他集合。当 2.8 发布时,集合被重新设计,以实现最大程度的代码重用和一致的 API,以便您可以使用++连接any两个集合——甚至迭代器。然而,除了一两个已被弃用的运算符之外,List 必须保留其原始运算符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala 列表串联,::: 与 ++ 的相关文章

随机推荐