Eşitlik için iki Scala işlev değerini nasıl karşılaştırabilirsiniz? Kullanım durumu, listenin çiftleri içerebileceği bir işlevler listesine sahip olduğum ve yalnızca her işlevi bir kez yürütmek istediğim.Eşitlik için Scala işlev değerleri nasıl karşılaştırılır
ben varsa:
scala> object A {
| def a {}
| }
defined module A
scala> val f1 = A.a _
f1:() => Unit = <function0>
scala> val f2 = A.a _
f2:() => Unit = <function0>
Ben ==
veya eq
biriyle işlevini karşılaştırmak çalışırsanız, ben her iki durumda da false
alacak:
scala> f1 == f2
res0: Boolean = false
scala> f1 eq f2
res1: Boolean = false
Genel olarak kabul edilemez bir problemdir. http://en.wikipedia.org/wiki/First-class_function#Equality_of_functions – missingfaktor