有没有更好的方法来写这个?
if a == 'new' || a == 'create'
...
else
...
end
a
我想我可以将第一行与一个结合起来,而不是检查两次a
。我正在看类似的东西:
if a == ['new' || 'create']
有没有更好的方法来写这个?
if a == 'new' || a == 'create'
...
else
...
end
a
我想我可以将第一行与一个结合起来,而不是检查两次a
。我正在看类似的东西:
if a == ['new' || 'create']
可以通过多种方式进行测试,但在单行上进行测试不一定是最好的主意。用 Ruby 编写它的最清晰的方法之一是使用case
语句:
case a
when 'new', 'create'
...
else
...
end
这样做的好处是您可以通过将其他测试附加到when
列表中来轻松添加它们。
你可以用正则表达式弄脏:
%w[foo renew new created create].each do |w|
puts w[/^(?:new|create)$/]
end
这将产生如下输出:
# >>
# >>
# >> new
# >>
# >> create
# >>
是使用 Sublime Text 时标记新行的输出。这意味着只有new
和create
匹配。
除非您了解正则表达式,否则我不特别建议您这样做,但它可能是检查大量选项的一种非常快速的方法。
就在这里 :
if %w(new create).include? a
#code here
else
#code
end