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


Scala Option.fold用法及代碼示例


fold 方法(或屬性)屬於 scala.Option 類(class),其相關用法說明如下。

用法 一

@inline
final def fold[B](ifEmpty: => B)(f: A => B): B

如果 scala.Option 為非空,則返回將 f 應用於此 scala.Option 的值的結果.否則,計算表達式 ifEmpty

這相當於:

option match {
 case Some(x) => f(x)
 case None    => ifEmpty
}

這也相當於:

option map f getOrElse ifEmpty

值參數:

f

非空時應用的函數。

ifEmpty

如果為空,則要評估的表達式。

源碼:

Option.scala

用法 二

def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1
option2Iterable 隱式添加

使用指定的關聯二元運算符折疊此集合的元素。IterableOnce 中的默認實現等同於 foldLeft 但可能會被覆蓋以實現更有效的遍曆順序。

對元素執行操作的順序是未指定的,並且可能是不確定的。

注意:對於無限大小的集合不會終止。

類型參數:

A1

二元運算符的類型參數,A 的超類型.

值參數:

op

必須是關聯的二元運算符。

z

折疊操作的中性元素;可以將任意次數添加到結果中,並且不得更改結果(例如,Nil 用於列表連接,0 表示加法,或 1 表示乘法).

返回:

在所有元素和 z 之間應用折疊運算符 op 的結果,如果此集合為空,則為 z.

繼承自:

IterableOnceOps

源碼:

IterableOnce.scala

相關用法


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