我一直遇到scala的一个问题是lambda的表达式。例如

JarBuilder.findContainingJar(clazz).foreach {userJars = userJars + _ }

给我一个错误,如:
missing parameter type for expanded function ((x$1) => userJars.$plus(x$1))

但是,如果我自己进行扩展:
JarBuilder.findContainingJar(clazz).foreach {x => userJars = userJars + x }

它工作正常。

这是Scala错误吗?还是我做错了什么?

最佳答案

匿名函数使用占位符语法仅限于表达式。在您的代码中,您尝试在与表达式不同的赋值语句中使用通配符。

如果仔细查看错误,您会发现分配右侧的表达式就是正在扩展为匿名函数的表达式。

鉴于您要完成的任务,您可能需要考虑以下内容

userJars = userJars ++ JarBuilder.findContainingJar(clazz)

关于function - 使用_(下划线)时"Missing parameter type for expanded function"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8722613/

10-10 08:15