:: 和 ::: 在 Scala 中的区别

Suraj P 2023年1月30日
  1. Scala 中的 :: 运算符
  2. Scala 中的 ::: 运算符
:: 和 ::: 在 Scala 中的区别

本文将区分 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)
作者: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub