में एक कुंजी-मूल्य जोड़ी का सशर्त समावेशन कोई मुझे निम्नलिखित विधि को छोटा करने में मदद कर सकता है? मैंने इसके साथ शुरुआत की, जिसे मुझे बस ठीक लगा:हैश
def self.some_hash
{ "foo" => "bar" }
end
अब मैं एक वैकल्पिक कुंजी जोड़ना चाहता हूं। tersest वाक्य रचना मैं के बारे में सोच सकते हैं यह है:
def self.some_hash(some_key=nil)
answer = { "foo" => "bar" }
answer[some_key] = "yucky, long-winded syntax" if some_key
answer
end
संशोधित विधि काम करता है, लेकिन मैं आभासी स्याही की बर्बादी से असंतुष्ट हूँ। क्या इसे छोटा करने का कोई तरीका है? मुझे एहसास है कि कोई हैश शाब्दिक पर एक टर्नरी ऑपरेटर को नियोजित कर सकता है, लेकिन इससे स्थिति की प्रत्येक शाखा पर "foo" => "bar"
जोड़ी दोहराई जाएगी (जो मुझे लगता है), जो प्रिस्टिन से थोड़ा कम है।
"मुझे निम्न विधि को छोटा करने में मदद करें" एक दे दिया गया है यह codereview.stackexchange.com पर होना चाहिए जहां वे समीक्षा करते हैं और refactoring और अनुकूलन के साथ मदद करते हैं। –
इस प्रश्न को बंद करने के लिए दुखद, जब यह वास्तव में पूछ रहा है, "मैं सशर्त रूप से एक हैश में एक कुंजी/मूल्य जोड़ी कैसे शामिल करूं?"। मैंने [रूबी 2.0 के डबल-स्प्लैट ऑपरेटर] (http://stackoverflow.com/a/37474217/122087) का उपयोग करके कहीं और जवाब लिखा था। –
@PaulAJungwirth, मुझे लगता है कि यह बंद कर दिया गया था क्योंकि मैं केवल काम कोड सुधारना चाहता था। मैंने इसके बजाय कुछ कचरा वाक्यविन्यास बनाया होगा और फिर कहा था कि यह काम नहीं कर रहा था, और सभी SO में अच्छा होगा। ** ऑपरेटर के बारे में यह एक महान युक्ति है! धन्यवाद <--- निराशाजनक 'एक टिप्पणी में धन्यवाद एक और गूंगा, यहाँ चारों ओर मानक है, लेकिन - धन्यवाद! – danh