Scala 如何将分部函数传递给包含分部函数的列表?
我有以下代码:Scala 如何将分部函数传递给包含分部函数的列表?,scala,Scala,我有以下代码: def bigger[T <% Ordered[T]](compare: T)(a: ResultSet, columnName: String): Boolean = a.getObject(columnName).asInstanceOf[T] > compare var rules = List[(ResultSet,String) => Boolean]() rules += bigger[Int](1000) //doesn't work
def bigger[T <% Ordered[T]](compare: T)(a: ResultSet, columnName: String): Boolean =
a.getObject(columnName).asInstanceOf[T] > compare
var rules = List[(ResultSet,String) => Boolean]()
rules += bigger[Int](1000) //doesn't work, compile error
val rule = bigger(1000) _ _
rules += rule //still doesn't work, compile error
def biger[T比较
变量规则=列表[(结果集,字符串)=>布尔]()
规则+=biger[Int](1000)//不起作用,编译错误
val规则=更大(1000)\uu
规则+=规则//仍然不起作用,编译错误
我需要更改什么才能使其工作?您只需要使用一个
\u
并使用+:=
将元素添加到规则中:
rules +:= bigger[Int](1000) _
谢谢,但是为什么只需要一个?该函数包含两个参数。
不是参数的占位符,而是告诉编译器创建一个表示部分应用的函数或方法的闭包。它与创建匿名函数时使用的
完全不同。可以补充一点,您可以使用>:+=
如果要附加元素,或+:=
如果要预附加元素。