Link Search Menu Expand Document

参数解元组

假设有这样一个二元元组的列表:

val xs: List[(Int, Int)]

当你想要把 xs 映射成一个 Int 列表,每一对数字都映射到它们的和。以前,最好的方法是使用模式匹配解构:

xs map {
   case (x, y) => x + y
}

虽然这是正确的,但也不方便且令人困惑,因为 case 表示模式匹配可能会失败。 Scala 3 现在允许这种写法作为一个更短且更清晰的替代方案:

xs.map {
   (x, y) => x + y
}

或者,也可以写成:

xs.map(_ + _)

一般地,如果期望的类型是一元函数类型 ((T_1, ..., T_n)) => U, 则使用 case 把有 n > 1 个参数的函数值转换为模式匹配闭包。

参考

更多详情请参见: