在考慮到潛在的運行時故障,如數據庫查詢,似乎是一個必須使用某種形式的Either[String, Option[T]]
爲了準確地捕捉到以下成果:Scala:是唯一的選擇嗎?
- 一些(發現結果)
- 無(沒有發現結果)
- SQL異常
選項根本沒有足夠的選擇。
我想我需要潛入斯卡拉,但現在它是直的要麼,除非我在上面丟失了一些東西。
已經把自己裝進了我的DAO實現的一個角落,只使用Either進行寫入操作,但現在我發現有些寫入依賴於Option讀取(例如檢查新用戶註冊時是否存在電子郵件),這是一個主要的糟糕的賭博。
在我全力以赴之前任何人都沒有替代解決方案來處理成功/失敗/異常的運行時間三連勝嗎?
由於記錄是一種可能性'或者[String,List [T]]'會更合適,不是嗎? – pedrofurla 2012-07-15 00:48:15
取決於,我需要處理選項[T]和列表[T]或選項[列表[T]]。現在我執行[String,SuccessType]進行寫操作,除非我另有說明,否則對讀操作也會這樣做。 – virtualeyes 2012-07-15 01:07:13
@virtualeyes否,你真的不需要處理所有這些。你說有一些記錄,沒有記錄或異常,是否正確?那麼一些記錄可以是非空的記錄列表,沒有記錄可以是記錄的空列表,並且異常像往常一樣是左邊的任一部分。 – 2012-07-15 06:04:07