:: 和 ::: 在 Scala 中的区别
Suraj P
2023年1月30日
本文将区分 Scala 中的 ::
和 :::
,它们是列表常用的运算符。
Scala 中的 ::
运算符
Scala 的 ::
运算符通常用于将单个元素添加到列表中。它返回带有添加元素的列表。
定义:
def ::(x: A): List[A]
示例 1:
object MyClass {
def main(args: Array[String]):Unit= {
val fruits = List("apples", "oranges", "pears")
val basket = "Mangoes"::fruits
println(basket)
}
}
输出:
List(Mangoes, apples, oranges, pears)
在这里,我们可以看到 Mangoes
被添加到 fruits
列表中。
示例 2:
object MyClass {
def main(args: Array[String]):Unit= {
val fruits = List("apples", "oranges", "pears")
val groceries = List("rice","biscuits")
val baskets = groceries::fruits
println(baskets)
}
}
输出:
List(List(rice, biscuits), apples, oranges, pears)
我们可以观察到完整的 groceries
列表,而不仅仅是它的内容,被添加到列表 fruits
之前。
Scala 中的 :::
运算符
Scala 中的 :::
运算符用于连接两个或多个列表。然后它返回连接列表。
示例 1:
object MyClass {
def main(args: Array[String]):Unit= {
val fruits = List("apples", "oranges", "pears")
val groceries = List("rice","biscuits")
val baskets = groceries ::: fruits
println(baskets)
}
}
输出:
List(rice, biscuits, apples, oranges, pears)
我们可以观察到列表 groceries
元素连接到列表 fruits
。
与前面使用::
的示例返回嵌套列表相比,这个使用:::
的示例返回一个包含所有元素连接的简单列表。
示例 2:
object MyClass {
def main(args: Array[String]):Unit= {
val fruits = List("apples", "oranges", "pears")
val groceries = List("rice","biscuits")
val flowers = List("daisy","rose","tulips")
val baskets = groceries ::: fruits ::: flowers
println(baskets)
}
}
输出:
List(rice, biscuits, apples, oranges, pears, daisy, rose, tulips)