scala – 如何将X => Option [R]转换为PartialFunction [X,R]
发布时间:2020-12-16 09:38:04 所属栏目:安全 来源:网络整理
导读:只要我们有一个PartialFunction [X,R],很容易将它转换成返回Option [R]的函数,例如 def pfToOptf[X,R](f: PartialFunction[X,R])(x: X) = if (f.isDefinedAt(x)) Some(f(x)) else None 但是,如果任务相反,假设我有一个函数f将X作为参数,并返回Option [
只要我们有一个PartialFunction [X,R],很容易将它转换成返回Option [R]的函数,例如
def pfToOptf[X,R](f: PartialFunction[X,R])(x: X) = if (f.isDefinedAt(x)) Some(f(x)) else None 但是,如果任务相反,假设我有一个函数f将X作为参数,并返回Option [R]。而且我想要做一个PartialFunction [X,R]。什么是最好的方法? 我所想出的看起来对我的口味很丑陋: def optfToPf[X,R](f: X => Option[R]) : PartialFunction[X,R] = { object extractor { def unapply(x: X): Option[R] = f(x) } { case extractor(r) => r } } 有没有更好的方式我错过了? 解决方法
我知道这是一个老线程,但是如果有人遇到这样的话,那么
Function.unlift就是这样做的。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |