私はこれを行う正しい方法について興味があります。メソッドから成功または失敗を通知したいとします。成功の場合には何も言いたくない場合は、これが受け入れられるのですか?それ以外は成功しましたか?Scala Either With Unit
def fn(): Either[Throwable, Unit]
と成功と、このメソッドから右()を返すために適切な方法は何ですか?どうやらRight()を返すだけで廃止予定の警告が表示されます(inserted()による引数リストの適用が廃止されました)。
私はおそらくOption [Throwable]を行うこともできますが、それはOptionの読み方の精神に反するものではありません。または、scala.util.Tryの結果を返し、成功/失敗を評価しますか?
- 廃止予定の警告に関しては、FYIです。
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101).
Type in expressions for evaluation. Or try :help.
scala> def fn:Either[Throwable, Unit] = { Right() }
<console>:11: warning: Adaptation of argument list by inserting() has been deprecated: this is unlikely to be what you want.
signature: Right.apply[A, B](b: B): scala.util.Right[A,B]
given arguments: <none>
after adaptation: Right((): Unit)
def fn:Either[Throwable, Unit] = { Right() }
^
fn: Either[Throwable,Unit]
この場合、「Try [T]」は完全に意味があると思います。 –
しかし、Tryは呼び出し元にエラー処理/回復を移します。着信者が復旧できる場合は着信音を鳴らすことをお勧めします。復帰できない場合にのみ失敗を返します。だから彼らはまったく同等ではありません。 –