अगर मैं एक संयुक्त सील traitया abstract classस्काला का उपयोग करता हूं और फिर पैटर्न मिलान का उपयोग करता हूं, तो मुझे आश्चर्य है कि क्या कंपाइलर को इस विशेष पैटर्नमैच के लिए संकलन समय पर नहीं पता है कि इस विशेषता / वर्ग के संभावित कार्यान्वयन क्या उपलब्ध हैं? इसलिए, अगर ऐसा होता है, तो क्या यह पैटर्न मैच की चेतावनी नहीं दे सकता है, भले ही यहtrait / abstract classको सील नहीं किया गया हो, क्योंकि वह जानता है कि किस प्रकार का उपयोग किया जा सकता है, सभी संभव निर्भरता / आयात की जांच करके?
जैसे अगर मैं ए Option[A] और मैं केवल उसी के लिए पैटर्न मिलान करता हूं, Some[A]लेकिन नहीं None, तो कंपाइलर शिकायत करेगा, क्योंकि Optionसील है।
यदि संकलक यह नहीं जान सकता / हल कर सकता है, तो वह क्यों नहीं कर सकता है? और यदि कंपाइलर (सैद्धांतिक रूप से) ऐसा कर सकता है, तो इसके क्या कारण हैं कि इसका उपयोग स्काला में नहीं किया जाता है? क्या अन्य भाषाएँ हैं जो इस तरह के व्यवहार का समर्थन करती हैं?
Fooउपवर्गों के साथ A, B, और C, और अपने पैटर्न मैचों में से सभी के लिए केवल उन तीन से मेल खाते हैं। कुछ भी नहीं मुझे एक नया उपवर्ग जोड़ने से रोकता है Dजो आपके पैटर्न मैचों को उड़ा देगा।
java.lang.ClassLoader।