Ruby 当语句出现时,我可以在(case)下放置哪些类型的说明?

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

什么时候我可以写什么类型的说明?我的一些代码在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 "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