加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

相当于ruby的case / when语句中的`break`?

发布时间:2020-12-17 03:39:02 所属栏目:百科 来源:网络整理
导读:我正在寻找一个跳过when块执行的语句,类似于break for循环.这可能吗? 我想要避免的是一个类似的结构: case n when 1 if valid foo.bar end when 2 if valid foo.foo end 更理想的代码块看起来像: case n when 1 break unless valid foo.bar when 2 break
我正在寻找一个跳过when块执行的语句,类似于break for循环.这可能吗?

我想要避免的是一个类似的结构:

case n
  when 1
    if valid
      foo.bar
    end
  when 2
    if valid
      foo.foo
  end

更理想的代码块看起来像:

case n
  when 1
    break unless valid
    foo.bar
  when 2
    break unless valid
    foo.foo
  end

显然,休息不起作用.

解决方法

等效但更简洁:

case n
  when 1
    foo.bar if valid
  when 2
    foo.foo if valid
  end
end

如果条件确实适用于所有情况,您可以事先检查:

if valid
  case n
    when 1
      foo.bar
    when 2
      foo.foo
    end
  end
end

如果两者都不适合你,那么简短回答:不,在ruby中的case语句中没有相应的中断.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读