我很好奇這樣做的正確方法。假設我想通過某種方法表示成功或失敗。這是否可以接受,如果在成功的情況下我不想說什麼,除了成功?Scala或者單元
def fn(): Either[Throwable, Unit]
什麼是從這種方法返回一個Right()成功的正確方法?顯然只是返回Right()給出了棄用警告(通過插入()適應參數列表已被棄用)。
我也可以做選項[Throwable],但這並不符合我如何閱讀Option的精神。或者可能返回scala.util.Try的結果並評估成功/失敗?
- 關於棄用警告,僅供參考。
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]
我想'在這種情況下嘗試[T]'是完全有意義的。 –
但嘗試將錯誤處理/恢復移到調用者。如果被調用者可以恢復,我寧願將它保留在被調用者中,只有在不能恢復時才返回失敗。所以他們不完全等同。 –