【发布时间】:2011-08-05 19:11:18
【问题描述】:
除了通过case 语句之外,还有什么方法可以创建PartialFunction?
我很好奇,因为我想表达以下内容(scala pseudo ahead!)...
val bi = BigInt(_)
if (bi.isValidInt) bi.intValue
... 作为一个偏函数,并且做
val toInt : PartialFunction[String, Int] = {
case s if BigInt(s).isValidInt => BigInt(s).intValue
}
似乎是多余的,因为我创建了两次BigInt。
【问题讨论】:
-
我认为除了打字之外的重要问题是:在未定义的情况下我必须返回/抛出什么,以便
orElse等人能够识别它?
标签: scala pattern-matching partialfunction extractor