Mr.*_*ael 4 ruby switch-statement
x='bob'
case x
when "bob"
puts 'it stops here'
when 'bob'
puts 'but i want it to stop here'
end
Run Code Online (Sandbox Code Playgroud)
反正是否使案例陈述表现得像香草开关?那么它会在爆发之前循环通过所有"何时"?令我惊讶的是,红宝石的表现几乎完全相同elsif.
迈克尔,
虽然你的例子有点误导('bob'匹配'bob'和'bob'所以第一种情况总是匹配),你可以使用简单的if,如if_test下面的方法:
def case_test(x)
puts case
when x > 3
"ct: #{x} is over 3"
when x > 4
"ct: #{x} is over 4"
end
end
case_test(4)
case_test(5)
def if_test(x)
puts "it: #{x} is over 3" if x > 3
puts "it: #{x} is over 4" if x > 4
end
if_test(4)
if_test(5)
Run Code Online (Sandbox Code Playgroud)
这会产生:
ct: 4 is over 3
ct: 5 is over 3
it: 4 is over 3
it: 5 is over 3
it: 5 is over 4
Run Code Online (Sandbox Code Playgroud)
请注意,您还可以使用多个语句when,这可能会对您有所帮助,具体取决于您的实际用例:
def many(x)
case x
when 'alice','bob'
puts "I know #{x}"
else·
puts "I don't know #{x}"
end
end
many('alice')
many('bob')
many('eve')
Run Code Online (Sandbox Code Playgroud)
收益率:
I know alice
I know bob
I don't know eve
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9133 次 |
| 最近记录: |