为什么 scala.util.Success.apply 不是无限递归的?
Why isn't scala.util.Success.apply infinitely recursive?
scala.util.Success
doesn't have an apply
method but inherits the one from scala.util.Try
(据我所知)。但是 scala.util.Try.apply
所做的只是调用 Success.apply
并用 try catch
块包围。这怎么不是无限递归的,这怎么会触发 catch
块?
不,scala 的 Success
是 案例 class 继承 abstract class Try
。
所以apply方法是scala编译器生成的内置方法,不是继承自对象Try
.
来源https://github.com/scala/scala/blob/2.11.x/src/library/scala/util/Try.scala#L225
scala.util.Success
doesn't have an apply
method but inherits the one from scala.util.Try
(据我所知)。但是 scala.util.Try.apply
所做的只是调用 Success.apply
并用 try catch
块包围。这怎么不是无限递归的,这怎么会触发 catch
块?
不,scala 的 Success
是 案例 class 继承 abstract class Try
。
所以apply方法是scala编译器生成的内置方法,不是继承自对象Try
.
来源https://github.com/scala/scala/blob/2.11.x/src/library/scala/util/Try.scala#L225