Info:
JavaScript is currently disabled, code tabs will still work,
but preferences will not be remembered.
现在您已经了解了如何编写自己的高阶函数,让我们快速浏览一个更真实的示例。
想象一下,
List
类没有自己的
map
方法,而您想编写自己的方法。
创建函数的第一步是准确地陈述问题。
只关注
List[Int]
,你说:
我想编写一个
map
方法,该方法可用于将函数应用于给定的
List[Int]
中的每个元素,并将转换后的元素作为新列表返回。
鉴于该声明,您开始编写方法签名。
首先,您知道您想接受一个函数作为参数,并且该函数应该将
Int
转换为某种通用类型
A
,因此您编写:
def double(i : Int) = i * 2
map(double, List(1, 2, 3)) // List(2, 4, 6)
def strlen(s: String) = s.length
map(strlen, List("a", "bb", "ccc")) // List(1, 2, 3)