Scala 版本 2.10.0
我创建了一个这样的函数。
def rm(workingSet: List[_])(item: Any)(f:(List[_], Any) => List[_]) = f(workingSet, item)
我收到以下错误:
scala> val data = List(1,2,3)
scala> rm(data)(1)((list, item)=>list filter (_ != item))
<console>:10: error: missing parameter type for expanded function ((x$1) => x$1.$bang$eq(item))
rm(data)(1)((list, item)=>list filter (_ != item))
^
谁能解释一下这个问题?
谢谢!
最佳答案
有时编译器无法推断类型,您必须帮助它。尝试“list.filter(_ != item)”——使用“.”符号通常可以解决问题。如果那不行,你总是可以做“list filter { li: Int => li != item }”。 FWIW,scala 2.10 REPL 在为我推断参数类型时似乎没有问题。
关于scala - List[_] 中扩展函数缺少参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14300345/