इस कोड पर विचार करें:हो रही संदर्भ
trait A {
def a : Int
}
def f (a : Int) = {
def a0 = a
new A {
def a = a0
}
}
समस्या
काफी स्पष्ट है: def a0 = a
एक ठेठ कष्टप्रद बॉयलरप्लेट कोड है और स्थिति केवल बिगड़ जाती है जब अधिक पैरामीटर प्राप्त की शुरुआत की।
मुझे आश्चर्य है कि किसी भी तरह से गुण के उदाहरण की घोषणा के अंदर बाहरी दायरे के a
चर का प्रत्यक्ष संदर्भ प्राप्त करना संभव है और इस प्रकार इंटरमीडिएट a0
से छुटकारा पाने के लिए।
कृपया ध्यान रखें कि फ़ंक्शन को बदलने के रूप में फ़ंक्शन के इनपुट पैरामीटर के नाम बदलने की अनुमति नहीं है।
धन्यवाद, अज्ञात अप-मतदाता। मैंने कभी भी आप पर विश्वास खो दिया नहीं है। लेकिन वास्तविक धन्यवाद उन लोगों के पास जाता है जो पागल प्रश्न पूछते हैं और अन्य लोग जो इतने तेज़ी से जवाब देते हैं कि जब तक मैं कुछ सोचता हूं, तो यह वास्तव में पागल होना चाहिए। –