आप समानता के लिए दो स्कैला फ़ंक्शन मानों की तुलना कैसे कर सकते हैं। उपयोग का मामला यह है कि मेरे पास फ़ंक्शंस की एक सूची है जहां सूची में डुप्लिकेट हो सकते हैं और मैं केवल एक बार प्रत्येक फ़ंक्शन निष्पादित करना चाहता हूं।समानता के लिए स्कैला फ़ंक्शन मानों की तुलना कैसे करें
तो मेरे पास है:
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
यह सामान्य रूप से एक अनिश्चित समस्या है। http://en.wikipedia.org/wiki/First-class_function#Equality_of_functions – missingfaktor