if(condition1){
return failure("cause1")
}
if(condition2){
return failure("cause2")
}
...
Success(new SomeResult(...))
}
Смотря на него хочется избавиться от
if(condition){
return failure("cause")
}
Кажется, делать это нужно при помощи монады. При этом требуемая монада похожа на Reader, потому что есть некоторая среда SomeEnv, и на Try, потому что есть фильтрация с "исключениями".
Кто-нить знает подходящую монаду или как улучшить этот код другим способом?
val someBuilding: ZIO[SomeEnv, String, SomeResult] = if (condition1) ZIO.fail("cause1") else if (condition2) ZIO.fail("cause2") else ZIO.succeed(SomeResult())
Обсуждают сегодня