问题描述
Ruby 使用case
表达式代替。
case x
when 1..5
"It's between 1 and 5"
when 6
"It's 6"
when "foo", "bar"
"It's either foo or bar"
when String
"You passed a string"
else
"You gave me #{x} -- I have no idea what to do with that."
end
Ruby使用运算符when
将子句中的对象与子句中的对象进行比较。例如,,而不是。case``===``1..5 === x``x === 1..5
这允许使用when
如上所示的复杂子句。范围、类和各种各样的东西都可以被测试,而不仅仅是相等。
与switch
许多其他语言中的语句不同,Rubycase
没有贯穿的语句,因此不需要以.when
结尾break
。您还可以在单个when
子句中指定多个匹配项,例如when "foo", "bar"
.
解决方法
如何在 Ruby 中编写 switch 语句