繁体   English   中英

电梯[A,B]中下划线的含义(f:A => B):选项[A] =>选项[B] = _映射f

[英]Meaning of underscore in lift[A,B](f: A => B): Option[A] => Option[B] = _ map f

我正在研究Runar和Paul的Scala中函数式编程中的示例,我在4.3.2节中遇到了以下对lift函数的实现:

def lift[A,B](f: A => B): Option[A] => Option[B] = _ map f

我理解函数的目的,但我不理解实现,因为我不明白下划线代表什么。 我已经看过许多其他关于Scala中下划线含义的线索,虽然我确信这些线程必须提到这种用例,但我一定错过了它。

这里的下划线是函数的简写。 编译器足够智能,可以根据方法签名的返回类型推断出的含义是:

def lift[A,B](f: A => B): Option[A] => Option[B] = (_: Option[A]).map(f)

然后扩展到:

def lift[A,B](f: A => B): Option[A] => Option[B] = (o: Option[A]) => o.map(f)

你可能想看看这个答案 _ map fx => x map f 语法糖 ,下划线是匿名函数参数的占位符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM