gpt4 book ai didi

scala - 验证列表 Scala 中的项目的好方法

转载 作者:行者123 更新时间:2023-12-01 09:12:37 24 4
gpt4 key购买 nike

您好,我有一个关于在 Scala 中验证列表的问题。我有一个看起来有点像这样的方法:

def validate(item: Item): Try[Unit] = {
if (item.isValid) Success(())
else Failure(new isNotValidException("not valid"))
}

现在我正在使用这种方法来验证 itemList: List[Item] 如下:

def listIsValid(list: List[Item]): Try[Unit] = {
list
.map(validate(_))
.collectFirst{ case f @ Failure(_: Exception) => f }
.getOrElse(Success(()))
}

我最终想解决一个 Try[Unit] (如果所有项目都有效,则成功,如果至少一个项目无效,则失败。

这是验证列表中所有项目的好方法吗?还是有更好的方法来验证列表中的项目?它应该很快失败,如果一个项目失败,我不需要知道其他项目当时是否无效。列表验证用于 for 理解,最终需要再次解析为单个 Try[Unit]

最佳答案

我会在 Lists 上使用 exists 方法,并将此方法编写如下:

def listIsValid(list: List[Item]): Boolean = {
list.exists(!_.isValid)
}

关于scala - 验证列表 Scala 中的项目的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56131162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com