我的声明目前看起来像这样:
arrays.foldLeft(0)((offset, array) => array.copyTo(largerArray, offset))
将它表达如下是很好的,但这是不可能的,因为foldLeft旨在首先采用种子参数:
arrays.foldLeft(0)(_.copyTo(largerArray, _))
这纯粹是肤浅的 - 我只是好奇!
P.S。 copyTo
返回此示例中的下一个偏移量。
答案 0 :(得分:3)
The SLS似乎说“不”。
第6.23节,匿名函数的匿名函数/占位符语法:
表达式(句法类别
Expr
)可能包含嵌入式 在标识符合法的地方下划线符号_
。这样的 表达式表示匿名函数,其中后续 下划线的出现表示连续参数。
和
如果,表达式
e
会将下划线部分u1 , . . . , un
,按此顺序绑定,则它等同于匿名函数(u'1 , ... u'n ) => e'
每个u'i
的结果来自ui
,取代了e'
使用新标识符和e
的{{1}}结果加下划线 将每个下划线部分ui
替换为u'i
。
重点是我的 - 它在两个相关部分明确指出假定保留顺序。
就个人而言,我认为如果出于可读性的原因,“仅”是强制执行的。