【发布时间】:2013-06-05 01:57:03
【问题描述】:
我有 19 个字符串需要验证为各种类型。当所有验证成功后,我想实例化一个代表电子表格行的类(其中列的类型不同)。
当一个或多个字符串验证失败时,我希望将错误累积在 NonEmptyList 中。
如果有 12 个或更少的项目,我可以使用 |@|或申请12。如果我使用 for 表达式,它会快速失败并且不会发生累积。
当 for 表达式失败时,我可以对失败进行排序,但这意味着我要循环两次。有没有办法在累积所有失败的同时使用 scalaz 将每个验证成功放入一个变量中(如果我使用 for 表达式实例化类会发生这种情况)?
【问题讨论】:
-
有点笨拙,不过你可以use
<*>(orap) directly,它会累积错误,并且对可以应用的次数没有任意限制。 -
你不能只将
map的字符串列表转换为Validation,然后将partition得到isFailure的结果列表。
标签: validation scala scalaz