रूबी में शामिल होने जैसे कई बूलियन अभिव्यक्तियों का मूल्यांकन करें, आप Array#join का उपयोग वैकल्पिक डिलीमीटर के साथ कई स्ट्रिंग्स में शामिल होने के लिए कर सकते हैं।रूबी
[ "a", "b", "c" ].join #=> "abc"
[ "a", "b", "c" ].join("-") #=> "a-b-c"
मैं सोच रहा हूँ अगर वहाँ बूलियन अभिव्यक्ति का एक समूह के साथ इसी तरह कुछ करने के लिए अच्छा वाक्यात्मक चीनी। उदाहरण के लिए, मुझे &&
अभिव्यक्तियों का एक गुच्छा एक साथ होना चाहिए। हालांकि, किस अभिव्यक्ति का उपयोग किया जाएगा उपयोगकर्ता इनपुट द्वारा निर्धारित किया जाता है। तो बजाय
cumulative_value &&= expression[:a] if user[:input][:a]
का एक समूह ऐसा करने का मैं सभी भाव पहले इनपुट के आधार पर है, तो &&
उन सब को एक साथ एक ही बार में इकट्ठा करने के लिए चाहते हैं। कुछ ऐसा:
be1 = x > y
be2 = Proc.new {|string, regex| string =~ regex}
be3 = z < 5 && my_object.is_valid?
[be1,be2.call("abc",/*bc/),be3].eval_join(&&)
क्या रूबी में डिफ़ॉल्ट रूप से ऐसा कोई डिवाइस है? यदि संभव हो तो मैं कोड क्लीनर को कुछ सिंथेटिक चीनी चाहता हूं।
क्या आप चाहते हैं कि प्रत्येक भाग तर्क लेता है और गतिशील रूप से बदलता है, या क्या वे पहले निर्धारित किए गए हैं? उदाहरण के लिए 'be1' तब तक समझ में नहीं आता है जब तक कि' x' और 'y' पहले ही नहीं दिया जाता है, इस स्थिति में यह 'सत्य' या 'झूठी' का निरंतर होगा, लेकिन' be2' एक proc है, जो हमेशा मूल्यांकन करता है एक truethy मूल्य के लिए, जो एक स्थिर भी है, और जब तक आप कुछ तर्कों को लागू करने जा रहे हैं, तब तक ज्यादा समझ नहीं आएगा। ऐसा लगता है कि आप इन्हें मिला रहे हैं। – sawa