添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
体贴的李子  ·  火山引擎-你的AI云·  2 月前    · 
伤情的刺猬  ·  numpy.ndarray.tolist ...·  3 周前    · 
强健的围巾  ·  为什么list.contains( ...·  3 周前    · 
怕考试的炒粉  ·  香港华丽精品酒店·  11 月前    · 
会搭讪的饭盒  ·  linq to ...·  1 年前    · 
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)