我正在使用Scala中_
中的anonymous functions
标记来练习技巧。
我有以下代码(开头与我们的案例无关):
.map(some_data => SomeObj.do_some(some_data.some_field))
我想知道我是否可以在这里使用_
下划线符号
做类似的事情:
.map(SomeObj.do_some(_.some_field)) # it doesn't work..
预先感谢
答案 0 :(得分:4)
您尝试的语法将等效于.map(SomeObj.do_some(some_data => some_data.some_field))
。 Scala不知道在哪里“插入”参数,在哪里将表达式包装在函数中:它总是在最内层执行。
答案 1 :(得分:1)
每个部分功能只能使用一次(anonymous-function
)。但是,当它们被递归调用时,知道在何处放置_
是不明确的。因此,您会出错。