निम्नलिखित कोड पर विचार करें। बेशकसुस्पष्ट Subimplicits
implicit val b: A = new B
उस त्रुटि को बढ़ाएगा। foo
क्यों निहित b
चुनें और निहित a
नहीं? या इससे भी अधिक सामान्य: क्या नियम उठाए जाएंगे?
संपादित करें:
कारण इवान के साथ मेरी टिप्पणी-बातचीत करने के लिए मैं स्पष्ट करना चाहता हूँ: अगर मैं स्थानीय अंतर्निहित वैल निहित विधि पैरामीटर के रूप में एक ही तरह से नामित मैं अपने सवाल का जवाब पता होगा।
def bar(implicit a: A) = {
implicit val a = new B
foo
}
तो केवल स्थानीय val a
जो विधि पैरामीटर गुंजाइश-ओवरराइड करता है, क्योंकि वे एक ही नाम है दायरे में है।
की [कहाँ स्काला implicits के लिए दिखता है?] संभव डुप्लिकेट (http://stackoverflow.com/questions/5598085/where-does-scala-look-for-implicits) –
भी देखें http: // eed3si9n.com/implicit-parameter-precedence-again (उस प्रश्न से जुड़ा हुआ)। –