假设您正在使用这样if
的 Ruby 语法:
if foo == 3: puts "foo"
elsif foo == 5: puts "foobar"
else puts "bar"
end
有没有办法让Ruby在if语句中执行两件事,比如:
if foo == 3
puts "foo"
foo = 1
elsif foo = ...
我怎样才能做到这一点,以便我可以使用第一种语法放入两条语句?
假设您正在使用这样if
的 Ruby 语法:
if foo == 3: puts "foo"
elsif foo == 5: puts "foobar"
else puts "bar"
end
有没有办法让Ruby在if语句中执行两件事,比如:
if foo == 3
puts "foo"
foo = 1
elsif foo = ...
我怎样才能做到这一点,以便我可以使用第一种语法放入两条语句?
if foo == 3: puts "foo"; puts "baz"
elsif foo == 5: puts "foobar"
else puts "bar"
end
但是,我建议不要这样做。
Ruby 允许用分号分隔一行中的语句,因此您可以:
if foo == 3: puts "foo"; puts "bar"
elsif foo == 5: puts "foobar"
else puts "bar"
end
为了整洁,我可能会终止这两个语句;
:
if foo == 3: puts "foo"; puts "bar";
elsif foo == 5: puts "foobar"
else puts "bar"
end
除非你有充分的理由,否则我不会这样做,因为它会影响可读性。具有多个语句的普通if
块更容易阅读。
我认为 case 语句看起来比 if 语句好得多:
case foo
when 3
puts "foo"
when 5
puts "foobar"
else
puts "bar"
end
这允许每个条件有多个语句。