在Ruby中,如何跳过.each循环中的循环,类似于‘continue‘[duplicate]
本文翻译自:In Ruby, how do I skip a loop in a .each loop, similar to 'continue' [duplicate]
This question already has an answer here: 这个问题在这里已有答案:
- Equivalent of “continue” in Ruby 7 answers 相当于Ruby 7答案中 的“继续”
In Ruby, how do I skip a loop in a .each
loop, similar to continue
in other languages? 在Ruby中,如何跳过.each
循环中的循环,类似于在其他语言中continue
?
#1楼
参考:https://stackoom.com/question/HkV0/在Ruby中-如何跳过-each循环中的循环-类似于-continue-duplicate
#2楼
Use next
: 使用next
:
(1..10).each do |a|next if a.even?puts a
end
prints: 打印:
1
3
5
7
9
For additional coolness check out also redo
and retry
. 如需额外的凉爽,请查看redo
retry
。
Works also for friends like times
, upto
, downto
, each_with_index
, select
, map
and other iterators (and more generally blocks). 也适用于朋友喜欢times
, upto
, downto
, each_with_index
, select
, map
和其他迭代器(和更普遍块)。
For more info see http://ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html#UL . 有关详细信息,请参阅http://ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html#UL 。
#3楼
next
- it's like return
, but for blocks! next
- 就像return
一样,但对于积木! (So you can use this in any proc
/ lambda
too.) (所以你也可以在任何proc
/ lambda
使用它。)
That means you can also say next n
to "return" n
from the block. 这意味着您还可以说next n
n
从块中“返回” n
。 For instance: 例如:
puts [1, 2, 3].map do |e|next 42 if e == 2e
end.inject(&:+)
This will yield 46
. 这将产生46
。
Note that return
always returns from the closest def
, and never a block; 请注意, return
总是从最接近的def
返回,而不是块; if there's no surrounding def
, return
ing is an error. 如果没有周围的def
,则return
是一个错误。
Using return
from within a block intentionally can be confusing. 故意使用块内的return
可能会令人困惑。 For instance: 例如:
def my_fun[1, 2, 3].map do |e|return "Hello." if e == 2eend
end
my_fun
will result in "Hello."
my_fun
将导致"Hello."
, not [1, "Hello.", 2]
, because the return
keyword pertains to the outer def
, not the inner block. ,而不是[1, "Hello.", 2]
,因为return
关键字属于外部def
,而不是内部块。
在Ruby中,如何跳过.each循环中的循环,类似于‘continue‘[duplicate]相关推荐
- java中的跳转语句_java中的跳转语句
java中的跳转语句有两种:break和continue: 一.break语句 1. break语句适用于任何循环控制结构,从而是循环立即终止.当执行流程遇到break语句时,不管循环终止变量,或者布 ...
- java中程序跳转_java程序中先后台交互的两种实现方式以及页面之间的跳转
虽然如今市面上很流行先后端分离,可是在不少企业中仍是使用的是SSH框架,先后端不分离. 那么此类先后端有其自身独特的先后台交互的方式,可是也支持js/jquery.下面对这两种方式作一下概括.java ...
- php实现QQ打开跳转浏览器,这个网站怎么实现在QQ与微信中打开跳转到浏览器中的?...
[HTML] 纯文本查看 复制代码 点击右上角Safari打开 可以继续浏览本站哦~ 您也可以复制本站网址,到其它浏览器打开 点此继续访问 function openu(u){ document.ge ...
- vscode 快速调到定义处_vim技巧:在程序代码中快速跳转,在文件内跳转到变量定义处...
本篇文章介绍 vim 的一些使用技巧: 在程序代码中快速跳转 在文件内跳转到变量定义处 在程序代码中快速跳转 在 vim 中查看代码文件时,可以使用下面命令在程序代码中快速跳转,提高效率. % 跳转到 ...
- Activity跳转到Navigation中的Fragment
Activity跳转到Navigation中的Fragment 思路 首先跳转到Fragment所在的Activity中 在跳回到对应Activity中需要判断这个意图是从哪里到达的这里,所以需要一个 ...
- php跳过当前后续代码,PHP用continue跳过本次循环中剩余代码的注意点
continue跳转语句用来跳过本次循环中指定条件的语句,并且继续执行其他的循环语句.下面这篇文章主要给大家介绍了关于在PHP中用continue跳过本次循环中剩余代码的一个注意点,文中的内容比较基础 ...
- php中循环跳过,php for循环的exit / break / continue /goto 停止、跳过循环、继续循环...
php 与 JavaScript 有很多相似的地方: for循环中 也有两个相同: 只是 php 比 js 多了一个 exit , 其他用法一样: for($i =1;$i<11;$i++){ ...
- php跳过代码,PHP利用continue实现跳过本次循环中剩余代码的注意点
continue跳转语句用来跳过本次循环中指定条件的语句,并且继续执行其他的循环语句.下面这篇文章主要给大家介绍了关于在PHP中用continue跳过本次循环中剩余代码的一个注意点,文中的内容比较基础 ...
- for循环中抛出异常_不要抛出循环!
到目前为止,在本系列文章中,我一直专注于Scala对Java生态系统的忠诚度,向您展示Scala如何整合Java的大部分核心对象功能. 但是,如果Scala只是编写对象的另一种方式,那么它就不会像它那 ...
最新文章
- 专访@爱可可-爱生活:如何做好科学研究(干货满满)
- nginx的启动初始化过程(一)
- gmod的css模块放哪里,webpack打包css报错找不到模块?
- C++学习笔记:(七)C语言实现面向对象编程
- Ubuntu: ldconfig(解决*.so不是符号连接)
- IOS基础之iPad的屏幕旋转方向判断
- 前端开发入门站点推荐
- Hive with as语法
- mysql count 条件_MySQL的COUNT语句,竟然都能被面试官虐的这么惨?
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_16-CMS前端工程创建-导入系统管理前端工程...
- NCBI引物设计-查找目的基因前后序列方法、序列比对
- 能气死古人的诗歌改编
- Word文档进行XXE攻击
- python目标识别_10行Python代码实现目标检测
- 教你解决“邮件”应用不断提示输入密码的方法!
- 北信源华为鸿蒙概念,A股华为鸿蒙概念板块的股票有哪些
- 微型计算机m3500q,联想ThinkCentre M3500q超小商用台式机
- 马云质押阿里巴巴股票寻求贷款,要有大动作?旧闻新炒!
- 优思学院|六西格玛黑带的职责包括什么?
- PIL/Image的show()函数
热门文章
- LAMP-----2、php-5.3.27编译安装
- 通过HttpModule实现IP地址屏蔽功能
- 《Python语言程序设计》——2.11 类型转换和四舍五入
- OpenSSL生成RSA公私钥(java)
- Vmware+gdb调试Linux内核——工欲善其事,必先利其器
- Spring Boot 揭秘与实战(二) 数据缓存篇 - Guava Cache
- Web.config配置详解
- 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序搜索
- 通过HTML5 Visibility API检测页面活动状态
- (转)C#中的Dictionary字典类介绍