scala - Scala猫库验证-收集所有无效对象
问题描述
我是scala的新手。验证后是否可以收集所有无效对象的列表?例如:有一个订单对象列表。经过验证,有些是有效的,有些是无效的。
在猫图书馆有知识的人请给我一个洞察力。
解决方案
给定一个列表Validated[E, A]
,您可以将它们拆分为一个列表E
和一个A
using列表partitionBifold
:
import cats._, cats.data._ cats.implicits._
val validations: List[Validated[String, Int]] =
List(1.valid, "Err".invalid, 2.valid, "Also Err".invalid)
validations.partitionBifold(identity)
// == (List("Err", "Also Err"), List(1, 2))
这适用于任何Foldable
而不是列表,以及任何有Bifoldable
实例的元素类型,例如Either
或元组。
推荐阅读
- mysql - MySQL 根据多个因素(位置、日期和时间)触发/检查 INSERT
- c# - 使用 Process.Handle 获得的句柄有什么权限?
- python - Python:自动售货机
- ruby-on-rails - 将文件从 Ruby On Rails 上传到 S3 存储桶的问题
- python - TypeError:切片索引必须是整数或无或具有 __index__ 方法 discord.py
- jquery - 脚本无法产生所需的结果
- android - 有什么快速的方法可以将活动作为服务使用
- python - 如何在python中的类中分配和调用变量
- java - 我想在转换为 json 时尝试将数据发送到我的数据库时出现错误。我如何将字符串转换为json
- java - 如何确认服务是前台服务