10

私は探していましたが、暗黙のコンバーターが見つかりません。言うまでもなく、それを書くのは簡単ですが、どういうわけかscalazライブラリで1つを逃したのではないかと思います!

4

2 に答える 2

12

Scalazには、とメソッドを宣言するOptionへの暗黙の変換があります。OptionWtoFailuretoSuccess

于 2012-01-19T17:09:01.740 に答える
0

基本的に、「Some」を「happy path」に変換するメソッドがあり(Validation-> Successの場合、Disjunction \ /-の場合)、Noneのエラー記述を定義する必要があります。

オプションのパラメーターを受け取ったときにこれを使用し、提供されていない場合はエラーを発生させたい。

例:

scala> import scalaz.Scalaz._
import scalaz.Scalaz._

scala> import scalaz._
import scalaz._

scala> Some("clientId123").toSuccessNel("Client id is mandatory")
res0: scalaz.ValidationNel[String,String] = Success(clientId123)

scala> None.toSuccessNel("Client id is mandatory")
res1: scalaz.ValidationNel[String,Nothing] = Failure(NonEmpty[Client id is mandatory]) 

Applicativeを使用してエラーを累積すると、次のような包括的なエラーメッセージを最終ユーザーに表示できます。

Client id is mandatory, country is mandatory, etc
于 2019-05-12T12:57:04.740 に答える