函数文字中的模式匹配

时间:2017-04-05 21:27:34

标签: scala pattern-matching

提供模式匹配的匿名函数:

val a = List((1,2), (3,4))
val c = a.map{case (x, y) => (y, x)}

有没有办法使用类似的语法来实现与函数文字相同的东西?

val f = case (x,y) => (y,x)
val c = a.map(f)

比这更好的东西:

val f = (z: (Int, Int)) => {
  z match {
    case (x, y) => (y, x)
  }
}

1 个答案:

答案 0 :(得分:3)

如果您在{}:

中键入注释和环绕声,则此功能正常
scala> val f: (Int,Int) => (Int,Int) = { case (x, y) => (y,x) }
f: (Int, Int) => (Int, Int) = <function2>