Làm thế nào bạn có thể so sánh hai giá trị hàm Scala cho sự bình đẳng. Trường hợp sử dụng là tôi có một danh sách các hàm mà danh sách có thể chứa các bản sao và tôi chỉ muốn thực hiện từng hàm một lần.Làm thế nào để so sánh các giá trị hàm Scala cho sự bình đẳng
Nếu tôi có:
scala> object A {
| def a {}
| }
defined module A
scala> val f1 = A.a _
f1:() => Unit = <function0>
scala> val f2 = A.a _
f2:() => Unit = <function0>
Nếu tôi cố gắng để so sánh chức năng với một trong hai ==
hoặc eq
, tôi sẽ nhận được false
trong cả hai trường hợp:
scala> f1 == f2
res0: Boolean = false
scala> f1 eq f2
res1: Boolean = false
Đó là vấn đề không thể giải quyết nói chung. http://en.wikipedia.org/wiki/First-class_function#Equality_of_functions – missingfaktor