我正在嘗試使用期貨編寫規範,我不知道我應該如何使用Futures
特質。我必須通過whenReady
a FutureConcept
,但我無法找到如何從Future
構建一個。文檔讀取:將期貨傳遞給whenReady失敗
爲了使whenReady更廣泛地應用於,它 接受未來的類型是一個FutureConcept [T],其中T是值的類型由所述將來答應 。將未來傳遞給whenReady時,需要將您希望傳遞的未來類型(建模類型) 轉換爲FutureConcept [T]的隱式 。
,從我明白,我必須寫一個Future
和FutureConcept
之間的隱式轉換(這似乎我錯了,因爲它似乎應該是樣板,但它是我可以做它的唯一的事情) 。我無法弄清楚如何做到這一點,雖然,FutureConcept的文檔告訴我輕而易舉地
見的細節特徵期貨對文檔的語法 這個特質提供了與期貨測試。
讓我走完整圈。我做了最簡單的例子是
import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global
import org.scalatest.WordSpecLike
import org.scalatest.concurrent._
class FutureSpec extends WordSpecLike with Futures {
"A future" must {
"be a valid argument for whenReady" in {
val fut = future { 42 }
whenReady(fut) { res => s should be 42 }
}
}
}
,這不符合
- 類型不匹配編譯;發現:scala.concurrent.Future [Int] required:FutureSpec.this.FutureConcept [?]
- ';'預期但發現整數字面值。
我應該做什麼不同?
這個答案是絕對正確的,只是爲了增加一點透明度:改變「與期貨」的「與ScalaFutures」 –
謝謝,這是否更好? – Martijn
這很完美。你的回答幫了我很多。乾杯! –