नौसिखिया रूबी प्रश्न:रूबी: मानों की सूची में एक स्ट्रिंग है
मैं वर्तमान में लिख रहा हूँ:
if mystring == "valueA" or mystring == "ValueB" or mystring == "ValueC"
वहाँ ऐसा करने का एक neater तरीका है?
नौसिखिया रूबी प्रश्न:रूबी: मानों की सूची में एक स्ट्रिंग है
मैं वर्तमान में लिख रहा हूँ:
if mystring == "valueA" or mystring == "ValueB" or mystring == "ValueC"
वहाँ ऐसा करने का एक neater तरीका है?
वहाँ दो तरीके हैं:
RegEx:
if mystring =~ /^value(A|B|C)$/ # Use /\Avalue(A|B|C)\Z/ here instead
# do something # to escape new lines
end
या, अधिक स्पष्ट रूप
if ["valueA", "valueB", "valueC"].include?(mystring)
# do something
end
आशा है कि मदद करता है!
कैसे 'मुक्केबाज़ी
if %w(valueA valueB valueC).include?(mystring)
# do something
end
यह मानकर आप अन्य मैच समूहों के साथ इस कार्यक्षमता का विस्तार करना चाहते हैं, तो आप भी इस मामले इस्तेमाल कर सकते हैं:
case mystring
when "valueA", "valueB", "valueC" then
#do_something
when "value1", "value2", "value3" then
#do_something else
else
#do_a_third_thing
end
रूबी में, आप वास्तव में लंगर के लिए पहुँचना चाहिए \ ए और \ ज़ेड जब तक कि आप सुनिश्चित न हों कि स्ट्रिंग में शून्य न्यूलाइन हैं। –
@glennjackman, क्या वह '/ \ Avalue (ए | बी | सी) \ Z /' होगा? – jerhinesmith
हाँ, वास्तव में। यह दुर्भाग्य से पठनीयता को खराब कर देता है। –