我关注def
。
def withAuthorized[T,U](t:T)(func: T => U) : U = func(t)
使用它是
withAuthorized(methodReturningDisjunction){ res : \/[Throwable,Boolean] =>
res match{
case \/-(r) => { block of code }
case -\/(e) => e.left
}
其中methodReturningDisjunction
返回\/[Throwable,Boolean]
我想将res
模式匹配逻辑抽象为withAuthorized
方法,以便它接受代码块并仅在第一个def
(methodReturningDisjunction
)返回时执行right
的{{1}}面。我想知道对disjunction
进行哪些修改以使其以这种方式运行?
答案 0 :(得分:2)
您正在寻找的是\/
上的地图方法:
def withAuthorized[E,T,U](res:\/[E,T])(func: T => U) : \/[E,U] = res.map(func)