Sunrabbit

सहप्रसरण और प्रतिसहप्रसरण

  • लेखन भाषा: कोरियाई
  • आधार देश: सभी देशcountry-flag
  • आईटी

रचना: 2024-11-01

रचना: 2024-11-01 01:06

यह सामग्री उन लोगों के लिए है जो कंपाइलर डेवलपर हैं, या
जो कंपाइलर के API का उपयोग करते हैं, या
जो कंपाइलर की टाइप सिस्टम का अत्यधिक उपयोग करते हैं।

यह स्वाभाविक रूप से सामना की जाने वाली सामग्री है।


और यह हमारे कोडिंग जीवन में स्वाभाविक रूप से समा गया है।


सरल शब्दों में, जब दो प्रकार के Animal और Dog होते हैं,

यदि Animal में Dog को असाइन किया जाता है, तो यहसहप्रसरण (Covariance)है।

इसके विपरीतयदि Dog में Animal को असाइन किया जाता है, तो यहप्रति-सहप्रसरण (Contravariance)है।

आम तौर पर, Dog में Animal को असाइन नहीं किया जा सकता है।

क्योंकि यह सामान्य लोगों के नजरिए से उचित नहीं है,
इसलिए कंपाइलर डेवलपर इसे ध्यान में रखते हुएकुछ हिस्सोंमें ही प्रति-सहप्रसरण डालते हैं।


आमतौर पर, ऊपर की तरह, फ़ंक्शन के इनपुट मान के लिए प्रति-सहप्रसरण का उपयोग किया जाता है, और आउटपुट मान के लिए सहप्रसरण को बनाए रखा जाता है।


यह प्रति-सहप्रसरण क्यों आवश्यक है?आप सोच सकते हैं।

यह ईवेंट हैंडलिंग जैसे स्थानों पर अधिक लचीलापन और बहुरूपता बनाए रखने में मदद करता है।

वास्तव में, सहप्रसरण के साथ समस्याएँ भी हो सकती हैं।


उपरोक्त कोड में, Dog के स्थान पर Animal डालकर लचीलापन सुनिश्चित किया गया है, और बहुरूपता पर ध्यान दिया जा सकता है।

यदि Animal के बजाय Dog के सबटाइप जैसे Chiwawa डाला जाता है, तो ईवेंट हैंडलर को निष्पादित करते समय, Dog में न होने वाले Chiwawa के विशिष्ट इंटरफ़ेस के कारण त्रुटि उत्पन्न होगी।


वास्तव में, यह फ़ंक्शन निष्पादित करते समय Animal का उपयोग किया जाएगा, इसलिए Animal के सबटाइप को स्वचालित रूप से डाला जाएगा।

यह Animal में Dog के असाइनमेंट जैसा लग सकता है।


इस तरह, प्रति-सहप्रसरण आमतौर पर इनपुट मानों के लिए उपयोग किया जाता है।


वि परिवर्तनशीलता (Invariance), अपरिवर्तनशीलता (Invariance)


संक्षेप में, वि परिवर्तनशीलता सहप्रसरण और प्रति-सहप्रसरण दोनों है, और अपरिवर्तनशीलता दोनों नहीं है।

समाप्त करते हुए

यह सामग्री सरल भी हो सकती है और जटिल भी, इसलिए

इसे स्वयं पढ़ना भी अच्छा विचार हो सकता है।




टिप्पणियाँ0

[इफेक्टिव जावा] आइटम 6. अनावश्यक ऑब्जेक्ट निर्माण से बचेंअनावश्यक ऑब्जेक्ट निर्माण मेमोरी की बर्बादी का कारण बनता है, इसलिए स्ट्रिंग या बूलियन जैसे ऑब्जेक्ट के लिए लिटरल या स्टेटिक फैक्ट्री मेथड का उपयोग करना बेहतर होता है।
제이온
제이온
제이온
제이온

April 28, 2024

डेटा लेबलिंग क्या है? प्रकार, लाभ, हानिडेटा लेबलिंग कृत्रिम बुद्धिमत्ता को डेटा को समझने में मदद करने के लिए टैग लगाने का काम है। कुत्ते और बिल्ली के बीच अंतर करने जैसे विभिन्न क्षेत्रों में इसका उपयोग किया जाता है, और यह मॉडल के प्रदर्शन को बेहतर बनाने में भी मदद करता है।
세상 모든 정보
세상 모든 정보
세상 모든 정보
세상 모든 정보

March 29, 2024

[इफेक्टिव जावा] आइटम 2. यदि कंस्ट्रक्टर में कई पैरामीटर हैं तो बिल्डर पर विचार करेंजब कंस्ट्रक्टर में कई पैरामीटर होते हैं, तो बिल्डर पैटर्न का उपयोग करके पठनीयता और स्थिरता में सुधार किया जा सकता है। जावा बीन्स पैटर्न या चरणबद्ध कंस्ट्रक्टर पैटर्न की तुलना में बिल्डर पैटर्न अधिक प्रभावी है।
제이온
제이온
제이온
제이온

April 27, 2024

[इफेक्टिव जावा] आइटम 4. इंस्टैंसिएशन को रोकने के लिए प्राइवेट कंस्ट्रक्टर का उपयोग करेंयूटिलिटी क्लास बनाने के समय, जिसमें केवल स्टेटिक मेथड और फील्ड का उपयोग किया जाता है, इंस्टैंसिएशन को रोकने के लिए प्राइवेट कंस्ट्रक्टर का उपयोग करने के तरीके के बारे में बताया गया है।
제이온
제이온
제이온
제이온

April 28, 2024

हमारा एल्गोरिदम के साथ संबंध में बदलावकृत्रिम बुद्धिमत्ता एल्गोरिदम के साथ हमारे संबंध में बदलाव पर केंद्रित लेख, जो एल्गोरिदम द्वारा उत्पन्न सामग्री से संबंधित नैतिक मुद्दों और मनुष्यों के साथ उनकी परस्पर क्रिया पर विचार प्रस्तुत करता है।
Byungchae Ryan Son
Byungchae Ryan Son
Byungchae Ryan Son
Byungchae Ryan Son

May 9, 2024

लेखाकार जेमिनी के साथ 10 मिनट में कर मामलों का विश्लेषण कैसे करें (सहायक कंपनियों के ट्रेडमार्क शुल्क)यह लेख बताता है कि कैसे एक लेखाकार जेमिनी का उपयोग करके 10 मिनट में कर मामलों का विश्लेषण कर सकता है। यह लेख सहायक कंपनियों के ट्रेडमार्क शुल्क पर एक केस के उदाहरण के रूप में एआई का उपयोग करके कुशल कर विश्लेषण का एक तरीका प्रस्तुत करता है।
s-valueup
s-valueup
s-valueup
s-valueup

July 22, 2025