Scala语言元组提取器

示例

x并y从元组中提取:

val (x, y) = (1337, 42)
// x:整数= 1337
// y:整数= 42

要忽略值,请使用_:

val (_, y: Int) = (1337, 42)
// y:整数= 42

要打开提取器的包装:

val myTuple = (1337, 42)
myTuple._1  // res0:整数= 1337
myTuple._2  // res1:整数= 42

请注意,元组的最大长度为22,因此._1直通._22将起作用(假定元组至少为该大小)。

元组提取器可用于为文字函数提供符号自变量:

val persons = List("A." -> "Lovelace", "G." -> "Hopper")
val names = List("Lovelace, A.", "Hopper, G.")

assert {
  names ==
    (persons map { name =>
      s"${name._2}, ${name._1}"
    })
}

assert {
  names ==
    (persons map { case (given, surname) =>
      s"$surname, $given"
    })
}