2009-08-28 5 views
6

रुबी में विधिओं को देखने के बजाय पैरामीटर को पास करने के बजाय पैरामीटर को देखने के लिए यह बहुत आम है।हैश बनाम एकाधिक पैरा?

मेरा प्रश्न है - आप अपनी विधि के पैरामीटर का उपयोग कब करते हैं और आप पैरामीटर हैश का उपयोग कब करते हैं?

क्या यह कहना सही है कि पैरामीटर हैश का उपयोग करने के लिए यह एक अच्छा अभ्यास है जब विधि में एक या दो पैरामीटर होते हैं?

उत्तर

0

एक स्पष्ट उपयोग केस तब होता है जब आप किसी बच्चे वर्ग में किसी विधि को ओवरराइड कर रहे होते हैं, तो जब आप इसे कॉल करते हैं तो आपको पैरेंट विधि के पैरामीटर के लिए हैश पैरामीटर का उपयोग करना चाहिए।

4

जब भी वे अर्थात् एक साथ जुड़े विकल्पों का एक सेट प्रस्तुत करते हैं तो पैरामीटर हैश का उपयोग करते हैं। फ़ंक्शन में सीधे (अक्सर आवश्यक) तर्क के किसी भी अन्य पैरामीटर, मैं एक-एक करके पास करता हूं।

+1

+1 में स्पष्ट रूप से समझाया गया है - पैरामीटर हैश में कुछ भी आवश्यक नहीं होना चाहिए। वैकल्पिक मानकों का नाम डिफ़ॉल्ट मानों के साथ किया जा सकता है, लेकिन मैं उन्हें एक हैश में पास करता हूं और यदि आवश्यक हो तो विधि निकाय में डिफ़ॉल्ट सेट करता है। –

1

जब आप कई वैकल्पिक पैरा हैं, या जब आप मनमाना पैरा स्वीकार करना चाहते हैं, तो आप हैश का उपयोग करना चाह सकते हैं, जैसा कि आप कई रेल के तरीकों में देख सकते हैं।

0

एक और नोट पर, और यह केवल रूबी के लिए, लेकिन सभी भाषाओं से संबंधित नहीं है:

एपीआई जो प्रवाह में हैं में, यह के रूप में एक पैरामीटर वस्तु एक समारोह के लिए कुछ या सभी मापदंडों घोषित करने के लिए कभी कभी उपयोगी है (रूबी में इन्हें हैश, सी structs में, और इसी तरह) हो सकता है, ताकि एपीआई स्थिरता को बनाए रखने के लिए स्वीकार्य तर्कों का सेट भविष्य के संस्करणों में बदलना चाहिए। हालांकि, स्पष्ट नकारात्मकता यह है कि पठनीयता बहुत कम हो गई है, और मैं कभी भी इस "पैटर्न" का उपयोग नहीं करता जब तक कि मुझे वास्तव में वास्तव में नहीं करना पड़ेगा।

1

यदि आपके पास 2 से अधिक बहस हैं। आपको हैश का उपयोग करने की सोच शुरू करनी चाहिए। यह साफ अभ्यास स्पष्ट कोड link text