最後に、スカラ2.12には右バイアスがかかっています。私はそれが検証目的のために使用できると聞きましたが、私はこれを想像することはできません。私は良い例を見つけることができません。
このモナドがどのように検証に役立つか、誰かに教えていただけますか?また、他のどのユースケースもこの拡張によってカバーされる可能性がありますか?スカラバリデーション - 右偏向どちらか
答えて
Either[A, B]
正しくバイアスされているかどうかは、検証/例外処理には適していますか?右寄せにすることで、それ以上の操作を簡単に作成できます。
オブジェクトを検証する場合、どのような形式で検証メソッドを実行できますか?最も単純な形式は、述語、メソッド任意のオブジェクトを取得し、Bool
を返すようになります:
sealed trait Base
case class Foo(I: Int)
case class Bar(s: String)
def isValid(b: Base): Bool = b match {
case Foo(i) => i > 18
case Bar(s) => s.length > 5
}
これは動作しますが、時には十分ではないかもしれません。これがAPIを直面しているユーザーの場合、受信したオブジェクトのエラーの可能性を明示して、ユーザーが間違ったことをすぐに理解できるようにするにはどうすればよいでしょうか?
Boolを返す代わりに、エラーのリストを返すか、有効なオブジェクト自体を返しますか?これは私たちがさらに構成することができます:
def validate(b: Base): Either[List[String], Base] = b match {
case Foo(i) => if (i > 18) Right(b) else Left(List("i must be greater than 18"))
case Bar(s) => if (s.length > 5) Right(b) else Left(List("s must be longer than 5 chars"))
}
今、私たちは、その上にマッピングすることができます。
val foo = Foo(42)
val result = validate(foo).map { case Foo(i) => s"yay, valid foo number: $i" }
result match {
case Left(errors) => println(s"Something went wrong: ${errors.mkString(", ")})
case Right(msg) => println(msg)
}
は、我々は2つのことを得ることができます。まず、他の操作で検証を行い、エラー処理を遅らせることができます.2番目は明示的なエラーです。これをさらに利用して、これらのエラーを型指定して、ユーザーが一致させて、ユースケースごとにエラー処理を適用できるようにすることもできますが、それは別の時間です。
今私はそれを持っている。私はもっと洗練されたものを考えていましたが、私は間違っていました。これは簡単で、私がしたいことをやっている。私は私の解決策を工夫してみました。ありがとう。 – PawelN
- 1. wxWidgets右から左へ方向
- 2. BlackBerryの磁力計の方向 - どちらの方向?
- 3. Jquery Toolsスクロール可能な左右どちらですか?
- 4. 偏りの事業部 - 右サイドのみ
- 5. CSS 3個の{左、中央、右}垂直に配向商品はこちら
- 6. MIPSのlsbとmsbの方向はどちらですか?
- 7. 動的偏向ランダム選択アルゴリズム
- 8. スカラどちらのマップ右または左へ左
- 9. Ext.NET TextFieldの右から左への方向
- 10. タブスワイプの方向を右から左Androidアプリ
- 11. グリッドビューで右から左の方向を使用
- 12. アクションバーの方向を右から左に変更する
- 13. WPFの入力方向を右から左へ
- 14. UITableViewの方向を右から左に変更
- 15. Pyocrで文字の向きを左から右に変更
- 16. 左右方向のUIViewAnimationTransitionCurl
- 17. どちらがエラーをスローする傾向がありますか?
- 18. マイクロソフトのダイナミクス - どちらが向いているか。 ERPまたはCRM
- 19. シンプルで短い論理アルゴリズム(どちらの方向に向いていますか)
- 20. 列はどちらか
- 21. 「FMAPのどちらかが」
- 22. 再生/どちらか
- 23. ReaderWriterStateからの短絡[どちらか]
- 24. 絶対位置要素はどこにあるかによって左右どちらか?
- 25. 左から右のレイアウトに適しているのはどちらですか:floatまたはdisplay:inline?
- 26. 抽象基本クラスまたはインタフェース?どちらも思えない右
- 27. どのように方向/大きさベクトルと衝突した三角形に基づいて方向/大きさベクトルを偏向できますか?
- 28. JavaScriptを右から左に向かってスプレッドシートを作成するには
- 29. どちらが良いですか?左外部結合か右外部結合か?
- 30. いずれかを転送する方法。どちらかを右にします。左か?
「どちらか」が「右寄せ」だと思いますか? – jwvh
公式のScalaリリースノート - https://www.scala-lang.org/news/2.12.0 – PawelN
[Either'に関するドキュメント](http://typelevel.org/cats/datatypes/either .html)。 –