map()是å¦æŒ‰å§“å呼å«ï¼Ÿ

时间:2017-02-09 12:00:09

标签: scala

map是å¦æŒ‰å§“å呼å«ï¼Ÿæˆ‘传递给地图的函数是在åºåˆ—中的元素上执行的。由于它ä¸æ˜¯åœ¨è°ƒç”¨æœŸé—´è¿›è¡Œè¯„估,我相信它是按å称调用的。但我无法从语法中弄明白。

1 个答案:

答案 0 :(得分:7)

如果查看“按å称å‚æ•°â€çš„规范:

  

4.6.2按å称å‚æ•°

     

ParamType ::= ‘=>’ Type

     

值å‚数的类型å¯ä»¥ä»¥=>为å‰ç¼€ï¼Œä¾‹å¦‚x: => T。   然åŽï¼Œè¿™ç§å‚数的类型是无å‚数方法类型=> T。这表示相应的å‚数未在中进行评估   功能应用程åºçš„è¦ç‚¹ï¼Œè€Œæ˜¯åœ¨æ¯ä¸ªåº”用程åºè¿›è¡Œè¯„ä¼°   在函数内使用。也就是说,使用å‚数进行评估   调用 - å称

然åŽä¸ï¼Œæ ¹æ®å®šä¹‰ï¼Œå®ƒä¸æ˜¯â€œæŒ‰å称呼å«â€ã€‚

map是一个高阶函数,它将函数作为A到B的输入。它ä¸æ˜¯â€œæŒ‰å称调用â€ï¼Œå› ä¸ºå®ƒæŽ¥å—类型å‚æ•°A。

å¿…é¡»ç†è§£çš„是,å称调用ä¸ä¼šåœ¨è°ƒç”¨ç«™ç‚¹è¿›è¡Œè¯„估,而是仅在调用时进行评估。它åªæ˜¯ä¼ é€’() => A(A Function0[A])的语法糖,这个函数ä¸å¸¦å‚数并返回A。