gpt4 book ai didi

list - Scala 列表串联,:::vs++

转载 作者:行者123 更新时间:2023-12-03 03:58:08 25 4
gpt4 key购买 nike

在 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

来自the documentation看起来 ++ 更通用,而 :::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,以便您可以使用 ++ 连接任何两个集合 - 甚至迭代器。然而,除了一两个已被弃用的运算符之外,List 必须保留其原始运算符。

关于list - Scala 列表串联,:::vs++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6559996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com