为什么
if name.eql? 'Name1' || name.eql? 'Name2'
# doSomething
end
不允许使用Ruby?在Ruby中执行此操作的好习惯是什么?
答案 0 :(得分:6)
在ruby中执行此操作的好习惯是什么?
括号方法调用以避免愚蠢的歧义。
if name.eql?('Name1') || name.eql?('Name2')
答案 1 :(得分:2)
您可以使用case-expression:
case name
when 'Name1', 'Name2'
# do something
when 'Name3'
# do something else
else
# if all else fails
end
答案 2 :(得分:1)
ruby为我们提供了省略括号的选项,并将责任委托给解释器。你所做的就是混淆了ruby解释器,因为你的括号不足是模棱两可的。也就是说,红宝石无法弄清楚你正在尝试做什么
如果我们指定每个parens
,可以通过多种方式查看if(name.eql?('Name1') || name.eql?('Name2'))
if(name.eql?('Name1' || name.eql?('Name2'))
if(name.eql?('Name1')) || name.eql?('Name2')
一个好的做法是在开始变得含糊不清时指定parens。这意味着将它们放在方法论证上
if name.eql?('Name1') || name.eql?('Name2')