为什么scala.util.Success.apply不是无限递归的?



scala.util.Success没有apply方法,但继承了scala.util.Try (AFAIK)的方法。但是所有scala.util.Try.apply所做的是调用Success.apply,周围是try catch块。这怎么不是无限递归的,这是如何触发catch块的?

不,scala的Success是一个继承abstract class Trycase类。所以apply方法是scala编译器生成的内置方法,不是从对象Try继承的。

源https://github.com/scala/scala/blob/2.11.x/src/library/scala/util/Try.scala L225

最新更新