如何比较两个Scala函数值的相等性。使用场景是,我有一个包含重复项的函数列表,我只想执行每个函数一次。
如果我有:
如果我有:
scala> object A {
| def a {}
| }
defined module A
scala> val f1 = A.a _
f1: () => Unit = <function0>
scala> val f2 = A.a _
f2: () => Unit = <function0>
如果我尝试使用==
或eq
比较函数,那么无论哪种情况下都会得到false
的结果。scala> f1 == f2
res0: Boolean = false
scala> f1 eq f2
res1: Boolean = false