请帮我解决这个scala在下面的上下文中抛出错误
def SelectValues(list: List[Int],sel:Int => Boolean) ={
var sum =0
list.foreach{ e =>
if(sel(e)) sum += e
}
sum
println(sum)
}
println(SelectValues(List(1,2){e => true}))
enter image description here'屏幕截图
答案 0 :(得分:2)
问题在于你的println专栏:
println(SelectValues(List(1,2){e => true}))
List(1,2)和{e =>之间没有逗号。 true}这意味着您要向SelectValues发送一个参数:
List(1,2){e => true}
这相当于:
List(1,2)(f)
其中f是函数。即你试图从列表(1,2)调用一个函数(在这种情况下应用),而不是发送第二个参数(sel)。
编译器首先分析SelectValues签名(在确定你的对象之前)并且只看到一个参数。
要解决此问题,只需添加缺少的逗号:
println(SelectValues(List(1,2), {e => true}))