Scala 了解getOrElse用法和无点函数组合
我有以下代码:Scala 了解getOrElse用法和无点函数组合,scala,Scala,我有以下代码: sealed trait Option[+A] { def map[B](f: A => B): Option[B] = this match { case None => None case Some(a) => Some(f(a)) } def getOrElse[B>:A](default: => B): B = this match { case None => default case
sealed trait Option[+A] {
def map[B](f: A => B): Option[B] = this match {
case None => None
case Some(a) => Some(f(a))
}
def getOrElse[B>:A](default: => B): B = this match {
case None => default
case Some(a) => a
}
def flatMap[B](f: A => Option[B]): Option[B] =
map(f) getOrElse None
}
case class Some[+A](get: A) extends Option[A]
case object None extends Option[Nothing]
flatMap
函数的主体,它是如何工作的?它不是一个函数组合。它是什么样的函数调用
如何使用getOrElse
方法?map(f)getOrElse None
相当于表达式map(f)。getOrElse(None)
只需使用输入f
调用map()
函数,然后对结果调用getOrElse
,返回Some(x)的值x
或None
,以防map返回None
Some(5)。getOrElse(0)
将返回5
None.getOrElse(0)
将返回0map(f)getOrElse None
相当于表达式map(f)。getOrElse(None)
只需使用输入f
调用map()
函数,然后对结果调用getOrElse
,这将返回Some(x)的值x
或None
,以防map返回None
Some(5)。getOrElse(0)
将返回5
None。getOrElse(0)
将返回0Domap(f)
返回对象选项,因为我可以进行方法链接?是的,getOrElse在选项上定义。Domap(f)
返回对象选项,因为我可以进行方法链接?是的,getOrElse在选项上定义。