为什么PartialFunction上没有orElse方法接受一个总函数?

mis*_*tor 10 functional-programming scala

为什么课堂上没有跟随签名的方法PartialFunction[A, B]

def orElse[A1 <: A, B1 >: B](that: A1 => B1): A1 => B1
Run Code Online (Sandbox Code Playgroud)

缺少这种方法背后有一些合乎逻辑的原因,还是仅仅是疏忽?

Kev*_*ght 10

  1. 因为通过提升部分功能来实现同样的目标是微不足道的

    partialFunc.lift(arg) getOrElse (totalFunc(arg))

  2. 因为Scala通常试图避免过载

  3. 因为没有人想过添加它,到目前为止可能还没有

  4. 因为添加到标准库的每个方法在下游维护方面都会产生不断增长的成本

  • +1.谢谢你的回答.回复你的子弹...... 1)那不是很有成就感,让我提一下并重复一下`arg`.此外,如果我们使用琐碎的实现作为参数,那么Scala stdlib将不得不剥离到当前大小的一半.:-) 2)公平点.3)过去三天我需要几次.4)这是一个简单的添加方法(如你所示).我认为它不会增加任何明显的维护开销. (2认同)