Scala中如何省略匹配字?
在斯卡拉,你可以做
list.filter { item => item match { case Some(foo) => foo.bar > 0 } } 但是你也可以通过省略匹配来做更快的方式: list.filter { case Some(foo) => foo.bar > 0 } Scala如何支持?这是新的2.9吗我一直在寻找它,我可以弄清楚这是可能的.它只是Scala编译器的一部分? 解决方法
language specification地址在8.5节.相关部分:
{ case p1 => b1 ... case pn => bn }
(x1 : S1,xk : Sk) => (x1,xk) match { case p1 => b1 ... case pn => bn }
new scala.PartialFunction[S,T ] { def apply(x: S): T = x match { case p1 => b1 ... case pn => bn } def isDefinedAt(x: S): Boolean = { case p1 => true ... case pn => true case _ => false } } 所以键入表达式作为PartialFunction或函数会影响表达式的编译方式. 还有特征部分函数[-A,B]扩展(A)?B,所以部分函数PartialFunction [A,B]也是函数[A,B]. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |