Option 操作中的collect
def onlyHttps[A](action: Action[A]) = Action.async(action.parser) { request => |
从这个函数中学习到了collect的用法
明确下这里是Option的collect
还有其他包中的collect,比如collection中也有collect,效果稍微有些不同
collect中需要一个Partial Function
这个偏函数 就是一写case xx => xxxx
模式匹配的处理
Option[A] collect
过程如下:
collect 会把 A先解构出来,然后对A进行match 如果match到了, 就返回一个 Some(result) 没有就None
所以后面还可以继续接getOrElse
源码如下:
|
先this.get 解构内容, lift其实就是包装成了Option类型