当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。