scala - List[_] 中扩展函数缺少参数类型

标签 scala

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/

相关文章:

scala - 为什么scala Map没有实现unapply?

scala - 为什么 Scala 中的对象表示法显然消除了以 ':' 结尾的方法的右侧关联性?

scala - 从Scala Process流标准输出

scala - 类型类接口(interface)的DataSet/DataStream

scala - Sbt 测试在使用 Scalaz 时抛出 IncompatibleClassChangeError

scala - 如何以orc格式在已创建的配置单元表中加载excel数据

scala - 使用 Specs2 测试 Akka

scala - sbt 0.13 中 sbt 交叉构建的用例是什么?

scala - 如何将akka http与akka流绑定(bind)?

scala - 构建 Spark 1.3.0 时出错 - 未解析的依赖项路径