Вопрос о новичке Руби:
Я в настоящее время пишу:
if mystring == "valueA" or mystring == "ValueB" or mystring == "ValueC"
есть ли более опрятный способ сделать это?
Есть два способа:
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
Надеюсь, что помогает!
Как «BOUT
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