कोई व्यक्ति कृपया बताएं कि एक ट्यूपल क्या है और असली दुनिया परिदृश्य में इसका उपयोग कैसे करें। मैं यह जानना चाहता हूं कि यह मेरे कोडिंग अनुभव को कैसे समृद्ध कर सकता है?ट्यूपल का उपयोग कब और कब करें?
उत्तर
यह msdn article बहुत अच्छी तरह से यह बताते हैं उदाहरण के साथ, "एक टपल डेटा संरचना एक विशिष्ट संख्या और तत्वों के क्रम है कि"।
tuples आमतौर पर चार तरह से इस्तेमाल कर रहे हैं:
डेटा का एक सेट का प्रतिनिधित्व करने के लिए। उदाहरण के लिए, एक tuple डेटाबेस रिकॉर्ड का प्रतिनिधित्व कर सकता है, और इसके घटक रिकॉर्ड के व्यक्तिगत फ़ील्ड का प्रतिनिधित्व कर सकते हैं।
डेटा सेट के लिए आसान पहुंच प्रदान करने और छेड़छाड़ करने के लिए।
मापदंडों (सी # में) या
ByRef
मानकों (विजुअल बेसिक में) बाहर का उपयोग किए बिना एक विधि से एक से अधिक मान वापस जाने के लिए।एक पैरामीटर के माध्यम से एक विधि में एकाधिक मानों को पारित करने के लिए। उदाहरण के लिए,
Thread.Start(Object)
विधि में एक पैरामीटर है जो आपको विधि के लिए एक मान प्रदान करने देता है कि थ्रेड स्टार्टअप समय पर निष्पादित करता है। यदि आपTuple<T1, T2, T3>
ऑब्जेक्ट को विधि तर्क के रूप में आपूर्ति करते हैं, तो आप थ्रेड के स्टार्टअप दिनचर्या को डेटा के तीन आइटमों की आपूर्ति कर सकते हैं।
एक टपल आप एक कस्टम वर्ग बनाए बिना एक भी वस्तु में संभवतः विभिन्न प्रकार के एक से अधिक मान गठबंधन करने के लिए अनुमति देता है। यह उपयोगी हो सकता है यदि आप एक विधि लिखना चाहते हैं जो उदाहरण के लिए तीन संबंधित मान लौटाती है लेकिन आप एक नई कक्षा नहीं बनाना चाहते हैं।
आमतौर पर आपको कक्षा बनाना चाहिए क्योंकि इससे आप प्रत्येक संपत्ति को उपयोगी नाम दे सकते हैं। कोड है कि बड़े पैमाने tuples का उपयोग करता है जल्दी से, अपठनीय हो जाएगा, क्योंकि गुण Item1
कहा जाता है Item2
, Item3
, आदि ..
टपल कक्षाएं डेवलपर्स एक विशिष्ट उपयोग के लिए एक विशेष वर्ग को परिभाषित नहीं द्वारा 'जल्दी और आलसी' होने की अनुमति।
संपत्ति के नाम आइटम 1, आइटम 2, आइटम 3 ... हैं, जो कुछ मामलों में या दस्तावेज़ीकरण के बिना सार्थक नहीं हो सकते हैं।
ट्यूपल कक्षाओं ने दृढ़ता से सामान्य पैरामीटर टाइप किए हैं। अभी भी ट्यूपल कक्षाओं के उपयोगकर्ता जेनेरिक पैरामीटर के प्रकार से अनुमान लगा सकते हैं।
तो हो सकता है कि सी # 7 को इस टुपल चीज़ की बजाय फ्लाई पर कक्षाएं/ऑब्जेक्ट्स बनाना आसान हो? –
एक ट्यूपल और कक्षा के बीच का अंतर यह है कि एक टुपल के पास कोई संपत्ति नाम नहीं है। यह लगभग कभी अच्छी बात नहीं है, और मैं केवल एक टुपल का उपयोग करता हूं जब तर्क एक अमूर्त गणित सूत्र जैसे समान अर्थहीन होते हैं। 5,6,7 आयामों से अमूर्त कैलकुलेशन निर्देशांक के लिए एक tuple ले सकता है।
इस मामले में (जहां संभवतः मानों के प्रकार समान हैं) एक साधारण सरणी का उपयोग करना पर्याप्त नहीं है? टुपल का उपयोग करने के लिए कुछ फायदा है? –
प्रकार आसानी से अलग हो सकते हैं, लेकिन मुझे लगता है कि कभी-कभी समरूप मामले में आईसीओपरपेबल कार्यान्वयन लाभ हो सकता है। जैसा कि आप कहते हैं, मैं सरल परिदृश्यों के लिए एक सरणी का उपयोग करने के इच्छुक हूं। – Kaido
बहुत अच्छा जवाब! –
यह ट्यूपल प्रकार के बारे में जानना सबसे महत्वपूर्ण बात है। टुपल एक वर्ग है, एक संरचना नहीं। इस प्रकार प्रबंधित ढेर पर आवंटित किया जाएगा। आवंटित प्रत्येक वर्ग उदाहरण कचरा संग्रह के बोझ को जोड़ता है।
नोट: गुण आइटम 1, आइटम 2, और आगे सेटर्स नहीं हैं। आप उन्हें असाइन नहीं कर सकते हैं। एक बार मेमोरी में बनाया गया ट्यूपल अपरिवर्तनीय है।
_ "बोर्डन" _ - क्या आपने कभी कचरा संग्रहण समस्या देखी है? – Gusdor
बिल्कुल! नेटवर्क संचार प्रसंस्करण कोड के बारे में सोचें। यह स्मृति की बहुत सारी आवंटन और विध्वंस कर रहा है ताकि जीसी चलने में हर कुछ मिनट हो और पूरा होने में सेकंड लग सकते हैं। वास्तविक समय में उस डेटा पर कुछ डाउनस्ट्रीम निर्भर होने पर यह अस्वीकार्य है। एक और उदाहरण एक संसाधन बाधित डिवाइस है, जैसे कि मोबाइल डिवाइस, एक वास्तविक समय ऐप चला रहा है, जैसे ड्राइविंग दिशा-निर्देश ऐप। – stuckintheshuck
- 1. टैग/लेबल का उपयोग कब करें और शाखा कब करें?
- 2. क्या "डिस्प्ले का उपयोग कब करें: ब्लॉक कब करें: इनलाइन और कब: इनलाइन-ब्लॉक" और क्यों?
- 3. Jquery - "यह" कब उपयोग करें और "$ (यह)" कब उपयोग करें?
- 4. OSGi EventAdmin का उपयोग कब करें और कब नहीं?
- 5. डेटाबेस दृश्यों का उपयोग कब करें और कब नहीं?
- 6. .mdf और कब .sdf का उपयोग कब करें?
- 7. डब्ल्यूसीएफ डेटा सेवाओं का उपयोग कब करें और कब नहीं?
- 8. हाइबरनेट फ़ेचिंग रणनीति - "शामिल" का उपयोग कब करें और "चयन करें" का उपयोग कब करें?
- 9. "willChangeValueForKey" और "didChangeValueForKey" का उपयोग कब करें?
- 10. viewDidLoad का उपयोग कब करें और awakeFromNib
- 11. मॉलोक का उपयोग कब और क्यों करें?
- 12. क्यों और कब __noop का उपयोग करें?
- 13. IEquatable का उपयोग कब करें और क्यों
- 14. स्टब्स और मोजे का उपयोग कब करें?
- 15. गुण और विधियों का उपयोग कब करें?
- 16. QueueUserAPC() का उपयोग कब करें?
- 17. Request.RegisterForDispose का उपयोग कब करें?
- 18. reinterpret_cast का उपयोग कब करें?
- 19. का उपयोग कब करें hibernate.connection.provider_class
- 20. Mockito.verify() का उपयोग कब करें?
- 21. कीवर्ड का उपयोग कब करें
- 22. फ़िल्टर_इनपुट का उपयोग कब करें()
- 23. ओपनसीएल का उपयोग कब करें?
- 24. $ .extend ({...}) का उपयोग कब करें?
- 25. ko.utils.unwrapObservable का उपयोग कब करें?
- 26. isInstanceOf का उपयोग कब करें और मैच-केस-स्टेटमेंट (स्कैला में) का उपयोग कब करें?
- 27. मर्ज सॉर्ट का उपयोग कब करें और त्वरित क्रम का उपयोग कब करें?
- 28. घटकों का उपयोग कब करें और वाईआई में एक्सटेंशन का उपयोग कब करें?
- 29. डुप्ली का उपयोग कब करें, और रूबी में क्लोन का उपयोग कब करें?
- 30. उदाहरण चर का उपयोग कब करें और गुणों का उपयोग कब करें
मैं इसे अधिकतम 2 मानों और प्रत्येक प्रकार के विभिन्न प्रकार i.e. स्ट्रिंग, int के लिए उपयोग करता हूं। अन्यथा यह सबसे खराब कोड बन रहा है जिसे आप लिख सकते हैं। – Ondra
उपयोग सीमित रखें, शायद कक्षा/मॉड्यूल के भीतर इसे केवल निजी रूप से उपयोग करना पसंद करते हैं। इसके अलावा, जटिल प्रकार ("ग्राहक", "कर्मचारी", आदि) युक्त ट्यूपल उपयोग प्राइमेटिव्स की तुलना में थोड़ा अधिक सरल हो सकता है। बहुत सारे टुपल s के साथ काम करने की कोशिश करने से कुछ भी बुरा नहीं है। –