当前位置:  开发笔记 > 编程语言 > 正文

scala中内部函数的占位符

如何解决《scala中内部函数的占位符》经验,为你挑选了1个好方法。

这是简单的代码:

(0 to 20).foreach(print(math.pow(2, _)))

我想知道,为什么它不起作用,但这个类似的代码

(0 to 20).foreach(x => print(math.pow(2, x)))

做工作.在内部函数中使用占位符有什么问题?



1> drhagen..:

Scala使用下划线创建一个匿名函数,其中最小的表达式不是标识函数.

所以编译器首先尝试:

(0 to 20).foreach(print(x => math.pow(2, x => x)))

不,这是身份功能,所以它出了一组括号并尝试:

(0 to 20).foreach(print(x => math.pow(2, x)))

这是一个非常重要的匿名函数,所以它停在那里.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有