用下划线表示法调用匿名函数

时间:2018-12-17 10:21:21

标签: scala anonymous-function

我正在使用Scala中_中的anonymous functions标记来练习技巧。

我有以下代码(开头与我们的案例无关):

.map(some_data => SomeObj.do_some(some_data.some_field))

我想知道我是否可以在这里使用_下划线符号

做类似的事情:

.map(SomeObj.do_some(_.some_field)) # it doesn't work..

预先感谢

2 个答案:

答案 0 :(得分:4)

您尝试的语法将等效于.map(SomeObj.do_some(some_data => some_data.some_field))。 Scala不知道在哪里“插入”参数,在哪里将表达式包装在函数中:它总是在最内层执行。

答案 1 :(得分:1)

每个部分功能只能使用一次(anonymous-function)。但是,当它们被递归调用时,知道在何处放置_是不明确的。因此,您会出错。