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

ruby – 从’下一个’返回一个错误的想法?

发布时间:2020-12-16 23:03:19 所属栏目:百科 来源:网络整理
导读:应该是一个容易的.我想,从阅读 this blog post,我可以在我的下一个命令之后返回一些东西: next“new value”如果axis_range ==“test” 我真正想做的是在同一行记录下一个原因: next @ logger.info(‘跳过这个项目,因为有趣’)除非(elephants.size 0) 我在
应该是一个容易的.我想,从阅读 this blog post,我可以在我的下一个命令之后返回一些东西:

next“new value”如果axis_range ==“test”

我真正想做的是在同一行记录下一个原因:

next @ logger.info(‘跳过这个项目,因为有趣’)除非(elephants.size> 0)

我在ruby doc没有找到关于下一个用法的讨论.代码肯定有效.我意识到我可以用一个除非块来做,但那行代码是sooo简洁.

两个问题:

>有没有更好的文件?
下一个这个用法有点奇怪,而不是’ruby-ish’吗?

解决方法

” Like the return and break keywords,next may be used alone,or
it may be followed by an expression or a comma-separated list of
expressions. When next is used in a loop,any values following
nextare ignored. In a block however the expression or expressions
become the “return value” of the yield statement that invoked the
block.” (The Ruby Programming Language,David Flanagan & Yukihiro Matsumoto,2008,page 150)

这本书给出了这个例子:

squareroots = data.collect do |x|
  next 0 if x < 0 # return 0 for negative values
  Math.sqrt(x)
end

和这个选择:

squareroots = data.collect do |x|
  if (x < 0) then 0 else Math.sqrt(x) end
end

(编辑:李大同)

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

    推荐文章
      热点阅读