Desugar Scala(19) -- Partial Function
先看这么一段Scala代码:
1 | object PFBlog { |
声明一个usePF方法,接受一个PartialFunction作为参数,它的实现就是传一个 Some(11) 给pf。
pf的具体类型是 PartialFunction[Option[Int], Int] 所以传递给它一个Some(11)可以期待它会返回一个Int。
然后调用usePF,传递给usePF的是一个pattern match表达式。给Some加一,给None返回0。
这时问题就来了,这个pattern match表达式是怎么能够符合usePF需要的参数类型的呢?
这么单纯的一个pattern match表达式怎么变成PartialFunction[Option[Int], Int]的呢?
为了探寻答案,先把这几行Scala代码编译成class文件,然后把byte code反编译成Java来一探究竟吧。

