Vic*_*tor 2 ruby ruby-on-rails
有没有更好的方法来写这个?
if a == 'new' || a == 'create'
...
else
...
end
Run Code Online (Sandbox Code Playgroud)
而不是检查a两次,我想我可以将第一行与一行结合起来a.我正在寻找类似的东西:
if a == ['new' || 'create']
Run Code Online (Sandbox Code Playgroud)
可以通过多种方式进行测试,但是在单行上进行测试并不一定是最好的想法.在Ruby中编写它的最明确的方法之一是使用一个case语句:
case a
when 'new', 'create'
...
else
...
end
Run Code Online (Sandbox Code Playgroud)
这样做的好处是您可以通过将其附加到when列表中来轻松添加其他测试.
你可以用正则表达式来贬低和肮脏:
%w[foo renew new created create].each do |w|
puts w[/^(?:new|create)$/]
end
Run Code Online (Sandbox Code Playgroud)
哪个会产生如下输出:
# >>
# >>
# >> new
# >>
# >> create
Run Code Online (Sandbox Code Playgroud)
# >>是使用Sublime Text时标记新行的输出.这意味着只有new和create匹配.
除非你理解正则表达式,否则我不特别推荐它,但它可以是一种非常快速的方法来检查大量的选项.
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |