ruby-on-rails - 执行 'case' 语句以匹配多个 'when' 条件

标签 ruby-on-rails ruby ruby-on-rails-3 switch-statement conditional-statements

我正在使用 Ruby on Rails 3,我想使用一个 case 语句,即使在匹配了一个 when 语句之后,它也可以继续检查其他 when 语句 直到最后一个 else

例如

case var
when '1'
  if var2 == ...
    ...
  else
    ...
    puts "Don't make nothig but continue to check!"
    # Here I would like to continue to check if a 'when' statement will match 'var' until the 'else' case
  end
when '2'
  ...
...
else
  put "Yeee!"

结束

在 Ruby 中可以吗?如果是,怎么做?

最佳答案

我看到的大多数来自 ruby​​ 的代码都是使用 if elsif else 完成的,但您可以模仿类似于其他语言的 switch 逻辑表达式,如下所示:

case var
when 1
  dosomething
when 2..3
  doSomethingElse
end

case
when var == 1
   doSomething
when var < 12
   doSomethingElse
end

这来自这个SO Question .就像我说的,这通常是在 ruby​​ 中使用 if elsif else 完成的,例如:

if my_number == "1"
   #do stuff when equals 1
elsif my_number == "e"
   #same thing here
else
   #default, no case found
end 

关于ruby-on-rails - 执行 'case' 语句以匹配多个 'when' 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5213535/

相关文章:

ruby-on-rails - 使用 Rspec 测试 Sidekiq worker

ruby-on-rails - 将数组转换为 ActiveRecord::Relation

ruby-on-rails - 我可以使用 Ruby 在图像上应用蒙版吗?

ruby-on-rails-3 - 无法让 Rails 数据库控制台与 psql 一起工作

ruby-on-rails-3 - Ruby on Rails呈现具有动态内容和部分内容的表

ruby-on-rails - 如何使用 YARD 记录 Rails 的 url_helpers 的使用?

mysql - 将值存储到整型变量中

Ruby 哈希直接访问与合并

ajax - 如何在通过 ajax 加载页面后显示 Twitter/Facebook/Google+ 按钮?

ruby-on-rails - 使用记录器录制 mp3 会创建一个 blob。但是当发送到服务器时,它的播放时间为 0 秒