意外的Scala模式匹配语法
我有一个
Scala元组列表,如下所示:
val l = List((1,2),(2,3),(3,4)) 我想将它映射到Int列表中,其中每个项目是相应元组中Ints的总和.我也不想使用x._1表示法,所以我用这样的模式匹配解决了问题 def addTuple(t: (Int,Int)) : Int = t match { case (first,second) => first + second } var r = l map addTuple 这样做我按预期获得了列表r:List [Int] = List(3,5,7).在这一点上,几乎是偶然的,我发现我可以使用如下的缩写形式获得相同的结果: val r = l map {case(first,second) => first + second} 我在我的文档中找不到对此语法的任何引用.这是正常的吗?我错过了一些微不足道的东西吗? 解决方法
请参见语言参考的第8.5节“模式匹配匿名函数”.
期望的类型deternines是否转换为FunctionN或PartialFunction. scala> {case x => x} <console>:6: error: missing parameter type for expanded function ((x0$1) => x0$1 match { case (x @ _) => x }) {case x => x} ^ scala> {case x => x}: (Int => Int) res1: (Int) => Int = <function1> scala> {case x => x}: PartialFunction[Int,Int] res2: PartialFunction[Int,Int] = <function1> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |