collect
方法(或屬性)屬於concurrent.Future特性(trait),其相關用法說明如下。
用法:
def collect[S](pf: PartialFunction[T, S])(implicit executor: ExecutionContext): Future[S]
如果給定的偏函數定義為該值,則通過映射當前未來的值來創建新的未來。
如果當前未來包含定義了偏函數的值,則新未來也將保留該值。否則,由此產生的未來將失敗並出現 NoSuchElementException
。
如果當前的未來失敗了,那麽由此產生的未來也失敗了。
例子:
val f = Future { -5 }
val g = f collect {
case x if x < 0 => -x
}
val h = f collect {
case x if x > 0 => x * 2
}
g foreach println // Eventually prints 5
Await.result(h, Duration.Zero) // throw a NoSuchElementException
類型參數:
- S
返回的類型
Future
值參數:
- pf
PartialFunction
應用於此Future
的成功結果
返回:
一個
Future
保存PartialFunction
或NoSuchElementException
的應用結果源碼:
- Future.scala
相關用法
- Scala Future.traverse用法及代碼示例
- Scala Future.reduce用法及代碼示例
- Scala Future.delegate用法及代碼示例
- Scala Future.recover用法及代碼示例
- Scala Future.fold用法及代碼示例
- Scala Future.recoverWith用法及代碼示例
- Scala Future.foldLeft用法及代碼示例
- Scala Future.fallbackTo用法及代碼示例
- Scala Future.reduceLeft用法及代碼示例
- Scala Future.map用法及代碼示例
- Scala Future.flatMap用法及代碼示例
- Scala Future.andThen用法及代碼示例
- Scala Future.apply用法及代碼示例
- Scala Future.filter用法及代碼示例
- Scala Function1.unlift用法及代碼示例
- Scala Float isInfinite()用法及代碼示例
- Scala FlatMap.transpose用法及代碼示例
- Scala FilterKeys.tails用法及代碼示例
- Scala Fill.groupMapReduce用法及代碼示例
- Scala Filter.sliding用法及代碼示例
- Scala Fill.sizeIs用法及代碼示例
- Scala Fill.groupMap用法及代碼示例
- Scala Filter.groupBy用法及代碼示例
- Scala FlatMap.addString用法及代碼示例
- Scala FlatMap.sizeCompare用法及代碼示例
注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 Future.collect。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。