Scala使用方法作为函数值
示例
Scala编译器将自动将方法转换为函数值,以将其传递给高阶函数。
object MyObject {
def mapMethod(input: Int): String = {
int.toString
}
}
Seq(1, 2, 3).map(MyObject.mapMethod) // Seq("1", "2", "3")在上面的示例中,MyObject.mapMethod不是函数调用,而是map作为值传递给。实际上,map需要传递给它的函数值,如其签名所示。对于签名map的List[A](类型的对象的列表A)是:
def map[B](f: (A) ⇒ B): List[B]
该f:(A)=>B部分指示此方法调用的参数是某个函数,该函数采用类型A的对象并返回类型的对象B。A并且B是任意定义的。回到第一个示例,我们可以看到mapMethod接受一个Int(对应于A)并返回一个String(对应于B)。因此mapMethod是传递给的有效函数值map。我们可以这样重写相同的代码:
Seq(1, 2, 3).map(x:Int => int.toString)
这内联了函数值,可以增加简单函数的清晰度。
热门推荐
10 直系离职祝福语大全简短
11 学生真挚的祝福语简短
12 姐妹乔迁贺卡祝福语简短
13 励志祝福语幽默句子简短
14 单位搬迁员工祝福语简短
15 面试升职祝福语简短精辟
16 团队入伙简短祝福语大全
17 睡觉祝福语女生文案简短
18 结婚等待吃饭祝福语简短