如何检查字符串是否是几个不同的值之一?

sim*_*szu 5 ruby arrays string

我有一个字符串变量,只能包含6个不同的值.我想检查它是否包含前4个值之一或2个秒值之一.

有没有比这更优雅的方式:

if string.eql? 'val1' || string.eql? 'val2' || string.eql? 'val3' || string.eql? 'val4'
  ...
elsif string.eql? 'val5' || string.eql? 'val6'
  ...
end
Run Code Online (Sandbox Code Playgroud)

也许是这样的if string is in ['val1', 'val2', 'val3', 'val4']

Dyl*_*kow 16

你可以使用include?:

if ['val1', 'val2', 'val3', 'val4'].include?(string)
Run Code Online (Sandbox Code Playgroud)

  • 对于字符串,您甚至可以使用'%w(val1 val2 val3 val4)`来进一步缩短它. (3认同)