【问题标题】:How can we print the elements of a tuple which contains Arrays?我们如何打印包含数组的元组的元素?
【发布时间】:2020-04-08 09:41:21
【问题描述】:

我在一个数组上应用了分区函数,它返回一个包含数组的元组。

val arrayMap = Array(2, 5, 6, 7, 8, 96)
val parted = arrayMap.partition(_ < 7)

我们如何像下面这样打印结果元组“parted”的元素?

Array(2,5,6)
Array(7,8,96)

【问题讨论】:

    标签: arrays scala functional-programming tuples higher-order-functions


    【解决方案1】:

    你可以访问元组的元素:

    parted._1
    // res0: Array[Int] = Array(2, 5, 6)
    parted._2
    // res1: Array[Int] = Array(7, 8, 96)
    

    或者,您可以使用解构绑定:

    val (lt7, other) = arrayMap.partition(_ < 7)
    // lt7: Array[Int] = Array(2, 5, 6)
    // other: Array[Int] = Array(7, 8, 96)
    

    【讨论】:

    • 另外值得一提的是,Arrays 没有漂亮的toString,所以你需要这样做:println(arr.mkString("Array(", "," , ")")) - 因此,加上不变性,加上可变性;最好使用其他数据结构,例如 Lists。
    【解决方案2】:

    您也可以直接将元组的不同值赋给变量。

    scala> val (first, second) = arrayMap.partition(_ < 7)
    first: Array[Int] = Array(2, 5, 6)
    second: Array[Int] = Array(7, 8, 96)
    

    【讨论】:

    • 这个答案提供了另一个答案没有的什么?
    • @LuisMiguelMejíaSuárez 在变量中获取元组而不是使用 ._1 语法的另一种方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2016-04-26
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 2020-04-23
    相关资源
    最近更新 更多