當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Scala PartialFunction.applyOrElse用法及代碼示例


applyOrElse 方法(或屬性)屬於 scala.PartialFunction 特性(trait),其相關用法說明如下。

用法:

def applyOrElse[A1 <: A, B1 >: B](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 評估 - liftunlift 不會在每次調用時兩次評估源函數 - runWith 允許高效 imperative-style 將部分函數與有條件應用的動作相結合

對於具有非平凡isDefinedAt 方法的非文字部分函數類,建議使用避免雙重isDefinedAt 評估的自定義實現覆蓋applyOrElse。這可能會導致更好的性能和更可預測的行為 w.r.t.副作用。

值參數:

default

後備函數

x

函數參數

返回:

此函數或後備函數應用程序的結果。

源碼:

PartialFunction.scala

相關用法


注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 PartialFunction.applyOrElse。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。