有什么区别吗:::
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(使用前将#替换为@)