我正在阅读有关Scala中提升方法演示的教程。这是基本类的代码:
case object None extends Optional[Nothing]
case class Presenter[+A](get: A) extends Optional[A]
trait Optional[+A] {
def map[B](f: A => B): Optional[B] = this match {
case None => None
case Presenter(x) => Presenter(f(x))
}
}
这是提升方法:
def lift[A, B](f: A => B): Optional[A] => Optional[B] = _ map f
我的问题是:下划线(“_”)代表上述功能。
感谢
答案 0 :(得分:1)
_ map f
等于(a: Optional[A]) => a.map(f)
,_
是 Scala 中的通配符。对于您的示例,它表示类型为Optional[A]
的参数,并适用于map f