繁体   English   中英

map()是否按名称调用?

[英]Is map() call by name?

地图可以按名称调用吗? 我传递给映射的函数是在序列中的元素上执行的。 由于它不是在调用期间进行评估的,因此我相信它是按名称调用的。 但是我无法从语法中找出答案。

如果查看“按名称参数”的规范:

4.6.2名称参数

ParamType ::= '=>' Type

值参数的类型可以以=>为前缀,例如x: => T 这样的参数类型就是无参数方法类型=> T 这表明相应的参数不在函数应用程序时评估,而是在函数中的每次使用时进行评估。 也就是说,使用名称调用来评估参数

那不,它不是定义上的“按名称呼叫”。

map是一个高阶函数,它接受从AB的函数。 它不是“按名称调用”,因为它接受类型参数A

必须理解的是,按名称进行的呼叫不会在呼叫站点进行评估,而只会在调用时进行评估。 它只是用于传递() => A (A Function0[A] )的语法糖,该函数不带参数并且返回A

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM