使用下划线符号调用匿名函数
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
)。但是当它们被递归调用时,知道在哪里放置_
是有歧义的。因此你得到错误。
我正在 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
)。但是当它们被递归调用时,知道在哪里放置_
是有歧义的。因此你得到错误。