scala - 验证集合中的元素,为第一个无效元素返回 Failure

如果我有一些验证函数:

def validateOne(a: A): Try[A]

我现在想通过使用 validateOne 函数来验证 A 的集合

def validateAll(all: List[A]): Try[List[A]]

有没有一种很好的方法可以在发现第一个元素无效时立即返回 Failure

我现在的做法是在验证每个元素后调用 get。对于 validateOne 返回 Failure 的第一个元素,get 抛出包装的异常...我捕捉到重新包装:

def validateAll(all: List[A]): Try[List[A]] = try {
  all.map(a => validateOne(a).get)
} catch {
  case e: MyValidationException => Failure(e)
}

相关文章:

aws-cloudformation - AWS Proton 与 CloudFormation

arrays - 从 C 中的数组中删除给定数字的所有出现

java - 在 java.time 中,为什么 WeekFields.SUNDAY_START 会

python - 模块未找到错误 : No module named 'psycopg2' in i

java - 问题启动 Cassandra。 Java 运行时环境 : 检测到 fatal erro

r - 添加一列显示前两列是否包含 0

r - 根据条件为每个 ID 创建不同数量的行

reactjs - 用于本地状态管理的 Apollo Client 3.0 或 Redux?

c++ - std::vector 初始化的模板参数

python - numpy/pandas 向量化自定义 for 循环