Scalaz验证
发布时间:2020-12-16 18:40:13 所属栏目:安全 来源:网络整理
导读:我正在尝试在我们的项目中使用 scalaz验证并遇到以下情况: def rate(username: String,params: Map[String,String]): ValidationNEL[String,Int] = { val voteV:Validation[String,RateVote] = validate(params,"vote") flatMap {v: String = RateVote(v)}
我正在尝试在我们的项目中使用
scalaz验证并遇到以下情况:
def rate(username: String,params: Map[String,String]): ValidationNEL[String,Int] = { val voteV:Validation[String,RateVote] = validate(params,"vote") flatMap {v: String => RateVote(v)} val voterV:Validation[String,Sring] = validate(params,"voter") ... } 现在我必须返回包含可能的参数错误的ValidationNEL,如果有的话,或者使用经验证的参数来调用该方法: storage.rate(username,voter,vote): Validation[String,Int] 我知道,我可以使用| @ |第一部分,但这个代码 (voterV.liftFailNel |@| voteV.liftFailNel) { (voter,rv) => storage.rate(username,rv) } 将返回ValidationNEL [String,Validation [String,Int]].有没有办法“扁平化”这个结果,以获得ValidationNEL [String,Int]? 解决方法
你可以用折叠来平整结果.
result.fold(e => e.fail,x => x.liftFailNel) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |