Ruby 当语句出现时,我可以在(case)下放置哪些类型的说明?
什么时候我可以写什么类型的说明?我的一些代码在if/else下工作,但在case-when下不工作 比如说Ruby 当语句出现时,我可以在(case)下放置哪些类型的说明?,ruby,Ruby,什么时候我可以写什么类型的说明?我的一些代码在if/else下工作,但在case-when下不工作 比如说 def categories(massIndex) case massIndex when >= 30.0 "obese" #[some instructions like this] else "error" end end case "hello" when Array puts "Array" when String puts
def categories(massIndex)
case massIndex
when >= 30.0
"obese"
#[some instructions like this]
else
"error"
end
end
case "hello"
when Array
puts "Array"
when String
puts "String"
end
#=> "String"
x = "hello"
if Array === x
puts "Array"
elsif String === x
puts "String"
end
#=> "String"
我总是看到这样的错误:
bmi.rb:8: syntax error, unexpected >=
when >= 30.0
但当我使用if/else时,它会起作用:
def categories(massIndex)
if massIndex >= 25
"something"
else
"error"
end
end
我可以用case修复它,还是必须使用if/else
case x
when y
puts "y"
when z
puts "z"
end
相当于
if y === x
puts "y"
elsif z === x
puts "z"
end
比如说
def categories(massIndex)
case massIndex
when >= 30.0
"obese"
#[some instructions like this]
else
"error"
end
end
case "hello"
when Array
puts "Array"
when String
puts "String"
end
#=> "String"
x = "hello"
if Array === x
puts "Array"
elsif String === x
puts "String"
end
#=> "String"
注:
看
所以当你写作的时候
case massIndex
when >= 30.0
"obese"
...
Ruby试图评估
(>= 30.0) === massIndex
导致她提出一个语法错误
下面是另一个示例,说明了方法==
的有用性
case "spiggot"
when /cat/ then "cat"
when /dog/ then "dog"
when /pig/ then "pig"
end
#=> pig
自
看
是一篇关于案例
语句的优秀文章 有趣的问题,但“相当于”意味着顶部指令与bot相同,或者您是在谈论底部指令(as===-相当)?编辑:我查过了,谢谢
case
when massIndex >= 30.0
"obese"
[some instructions like this]
else
"error"
end