使用下划线符号调用匿名函数

calling anonymous function with underscore notation

我正在 scala 中使用 _ 符号练习 anonymous functions 中的技巧。

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

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

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

做类似的事情:

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

提前致谢

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

每个部分函数只能使用一次 (anonymous-function)。但是当它们被递归调用时,知道在哪里放置_是有歧义的。因此你得到错误。