Ruby:是值列表中的字符串

Mik*_*ton 17 ruby string compare

新手Ruby问题:

我现在正在写:

if mystring == "valueA" or mystring == "ValueB" or mystring == "ValueC"
Run Code Online (Sandbox Code Playgroud)

这样做有一个更简洁的方法吗?

jer*_*ith 43

有两种方法:

正则表达式:

if mystring =~ /^value(A|B|C)$/ # Use /\Avalue(A|B|C)\Z/ here instead 
   # do something               # to escape new lines
end
Run Code Online (Sandbox Code Playgroud)

或者,更明确地说,

if ["valueA", "valueB", "valueC"].include?(mystring)
   # do something
end
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!


oen*_*nli 7

怎么样

if %w(valueA valueB valueC).include?(mystring)
  # do something
end
Run Code Online (Sandbox Code Playgroud)