https://gist.github.com/satyagraha/897e427bfb5ed203e9d3054ac6705704 Scala Cats検証シナリオを投稿しましたが、これは妥当と思われますが、非常にすっきりした解決策は見つかりませんでした。Scala Catsで検証済みのものは、どのように順序付き検証を組み合わせることができますか
基本的に2段階の検証があり、個々のフィールドが検証され、内部のチェックのためにスローされるクラスコンストラクタが呼び出されます(一般に、これは私の制御下にありません。コード)。フィールドの検証に失敗した場合はコンストラクタを呼び出さず、コンストラクタの失敗も最終結果に組み込みます。 2フェーズのチェックでは、「フェイル・ファスト」が確実にここにあります。
これは操作でcats.data.Validated
フレームワークが処理するように見える種類のflatMap
の問題です。しかし、私はコードで見ることができるように、問題に特にきれいな解決策を見つけることができませんでした。 cats.syntax.CartesianBuilder
で利用できる操作はかなり限られており、それをandThen
操作とリンクさせる方法がわかりませんでした。
注意しなければならない可能性のある猫の問題https://github.com/typelevel/cats/issues/1343があることに注意してください。
これは良い解決策のように見え、より一般的なケースに拡張可能に見えます。ありがとう! – satyagraha