Hep*_*tic 6 syntax scala compiler-errors function
我不断遇到scala的一个问题是lambda'表达式.例如
JarBuilder.findContainingJar(clazz).foreach {userJars = userJars + _ }
Run Code Online (Sandbox Code Playgroud)
给我一个错误,如:
missing parameter type for expanded function ((x$1) => userJars.$plus(x$1))
Run Code Online (Sandbox Code Playgroud)
然而,如果我自己做扩展:
JarBuilder.findContainingJar(clazz).foreach {x => userJars = userJars + x }
Run Code Online (Sandbox Code Playgroud)
它工作正常.
这是Scala的错误吗?或者我在做一些可怕的错误?
匿名函数的占位符语法的使用仅限于表达式.在您的代码中,您尝试在赋值语句中使用通配符,该语句与表达式不同.
如果仔细查看错误,可以看到赋值右侧的表达式是扩展为匿名函数的表达式.
鉴于您要完成的任务,您可能需要考虑以下内容
userJars = userJars ++ JarBuilder.findContainingJar(clazz)
Run Code Online (Sandbox Code Playgroud)