添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
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)