scala> List((12,"23"),21,"33").map{
| case (id,p @"23") => print("1")
| case _ => print("2")
| }
122res12: List[Unit] = List((), (), ())
首先List是个元组序列,id用于绑定第一个变量,p用于绑定第二个变量,而其中我们使用了@对p进行了二次绑定!这就是嵌套绑定,例如我们可以用正则在二次绑定
还有scala的match是支持备选的
scala> List((12,"33"),(22,"32")).map{
| case (id,"31" | "33") => print("...")
| case _ => print("end")
| }
...endres17: List[Unit] = List((), ())
在FP中如haskell备选是很好的一个技巧