scala - Scala 对 true 块内的 Try() 调用中的 main if 和失败的相同回退
问题描述
doSomething()
在类似于以下情况的情况下寻找一种优雅的方式来进行回退:
if(boolean) {
Try(canFailingMethod()) match {
case Success() => _
case Failure() => doSomething()
}
} else {
doSomething()
}
解决方案
像这样的东西怎么样:
def attemptWithFallback(flag: Boolean)(work: => Unit)(fallback: => Unit): Unit = {
Try(()).filter(_ => flag).flatMap(_ => Try(work)).getOrElse(fallback)
}
推荐阅读
- arrays - 如何使用 VBA 宏将单个暗淡存储在数组中以循环遍历多个工作簿
- postgresql - 有没有办法在保存到数据库之前先插入两个相关行来检查错误
- stm32 - 更改地址 STM32F722 程序
- sql - Oracle 中的通用数据类型以实现可重用性
- mysql - 连接到远程 mysql 数据库 - aws 服务器
- python - 无法使用请求从链接下载视频
- kotlin - LiveData 转换映射功能
- reactjs - react-share 参数 'href' 应该代表一个有效的 URL
- python - psycopg2.DatabaseError:状态为 PGRES_TUPLES_OK 的错误,并且没有来自 Flask Celery 应用程序中的 libpq 错误的消息
- python - 如何根据每个子列表的第一个条目中的值将列表的 python 列表拆分为 3 个单独的列表?