applyOrElse
方法(或屬性)屬於 scala.collection.mutable.ArrayDeque
類(class),其相關用法說明如下。
用法:
def applyOrElse[A1 <: Int, B1 >: A](x: A1, default: A1 => B1): B1
當它包含在函數域中時,將此部分函數應用於給定參數。在未定義此部分函數的情況下應用後備函數。
請注意,表達式pf.applyOrElse(x, default)
等價於
if(pf isDefinedAt x) pf(x) else default(x)
除了applyOrElse
方法可以更有效地實現。對於所有部分函數文字,編譯器會生成一個 applyOrElse
實現,以避免對模式匹配器和守衛進行雙重評估。這使得applyOrElse
成為許多操作和場景高效實現的基礎,例如:
- 將部分函數組合到 orElse
/andThen
鏈中不會導致過度的 apply
/isDefinedAt
評估 - lift
和 unlift
不會在每次調用時兩次評估源函數 - runWith
允許高效 imperative-style 將部分函數與有條件應用的動作相結合
對於具有非平凡isDefinedAt
方法的非文字部分函數類,建議使用避免雙重isDefinedAt
評估的自定義實現覆蓋applyOrElse
。這可能會導致更好的性能和更可預測的行為 w.r.t.副作用。
值參數:
- default
後備函數
- x
函數參數
返回:
此函數或後備函數應用程序的結果。
繼承自:
- PartialFunction.applyOrElse
源碼:
- PartialFunction.scala
相關用法
- Scala ArrayDeque.addString用法及代碼示例
- Scala ArrayDeque.mkString用法及代碼示例
- Scala ArrayDeque.combinations用法及代碼示例
- Scala ArrayDeque.sizeIs用法及代碼示例
- Scala ArrayDeque.permutations用法及代碼示例
- Scala ArrayDeque.runWith用法及代碼示例
- Scala ArrayDeque.lazyZip用法及代碼示例
- Scala ArrayDeque.groupBy用法及代碼示例
- Scala ArrayDeque.groupMap用法及代碼示例
- Scala ArrayDeque.transpose用法及代碼示例
- Scala ArrayDeque.sortBy用法及代碼示例
- Scala ArrayDeque.sliding用法及代碼示例
- Scala ArrayDeque.inits用法及代碼示例
- Scala ArrayDeque.scanRight用法及代碼示例
- Scala ArrayDeque.lengthIs用法及代碼示例
- Scala ArrayDeque.sortWith用法及代碼示例
- Scala ArrayDeque.collectFirst用法及代碼示例
- Scala ArrayDeque.groupMapReduce用法及代碼示例
- Scala ArrayDeque.tails用法及代碼示例
- Scala ArrayDeque.elementWise用法及代碼示例
- Scala ArrayDequeOps.combinations用法及代碼示例
- Scala ArrayDequeOps.collectFirst用法及代碼示例
- Scala ArrayDequeOps.mkString用法及代碼示例
- Scala ArrayDequeOps.transpose用法及代碼示例
- Scala ArrayDequeOps.scanRight用法及代碼示例
注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 ArrayDeque.applyOrElse。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。