Ruby 中的下一步是啥?

     2023-03-16     214

关键词:

【中文标题】Ruby 中的下一步是啥?【英文标题】:What is invalid next in Ruby?Ruby 中的下一步是什么? 【发布时间】:2013-11-02 12:33:27 【问题描述】:

以下代码有效:

collection.each do |i|
  begin
    next if i > 10
    i += 1
  rescue
    puts "could not process # i "
  end
end

但是,当我们重构时:

collection.each do |i|
  begin
    increment i
  rescue
    puts "could not process # i "
  end
end

def increment i
  next if i > 10
  i += 1
end

我收到invalid next 错误。这是 Ruby (1.9.3) 的限制吗?

如果增量方法出现异常,begin rescue 块的工作方式是否相同?

【问题讨论】:

我的问题是他希望next 做什么? 是的,这是一个简化的例子。如果我发布生产代码,它会掩盖问题。 这不是一个“限制”,而是一个设计决定,而且是一个好的决定。您不应该能够将next 移出循环上下文。你也不能用任何其他语言。 除了您试图从方法调用更改循环流这一事实之外,方法increment 内的i 的范围是该方法的本地范围。所以它变成了一个不同于循环中的i。不仅next 不能那样工作,i 的增量也不能那样工作。 【参考方案1】:

您的next 语句必须出现在循环内。 increment 方法中没有循环。

异常会“冒泡”,因此如果您的 increment 方法中有异常,它将被调用方法的 rescue 部分捕获。

【讨论】:

查找此异常原因的下一步是啥?

】查找此异常原因的下一步是啥?【英文标题】:Whataremynextstepsonfindingthecauseofthisexception?查找此异常原因的下一步是什么?【发布时间】:2015-08-3108:18:54【问题描述】:我对Eclipse、Java和Android编程相当陌生。我已经接管了一个And... 查看详情

c# windows form,部署前的下一步是啥?

】c#windowsform,部署前的下一步是啥?【英文标题】:c#windowsform,Whatisnextstepbeforedeployment?c#windowsform,部署前的下一步是什么?【发布时间】:2020-08-1416:21:55【问题描述】:刚刚在sql管理Studio中使用数据库完成了我的诊所Winforms程... 查看详情

从 appengine 迁移到完整 django 的下一步是啥?

】从appengine迁移到完整django的下一步是啥?【英文标题】:What\'sthenextstepsformovingfromappenginetofulldjango?从appengine迁移到完整django的下一步是什么?【发布时间】:2011-06-0517:19:46【问题描述】:我是编程新手,我一直在使用appengine来... 查看详情

使用 cx_Freeze 的下一步是啥?

】使用cx_Freeze的下一步是啥?【英文标题】:Whatismynextstepusingcx_Freeze?使用cx_Freeze的下一步是什么?【发布时间】:2012-06-1912:34:54【问题描述】:好的,我安装了python3.2并安装了cx_Freeexe4.2.3。我有一个名为Pythonstuff的文件夹。在这... 查看详情

cell.accessoryType = UITableViewCellAccessoryDe​​tailButton 下一步是啥?

】cell.accessoryType=UITableViewCellAccessoryDe​​tailButton下一步是啥?【英文标题】:cell.accessoryType=UITableViewCellAccessoryDetailButtonWHATISNEXT?cell.accessoryType=UITableViewCellAccessoryDe​​tailButton下一步是什么?【发布时间】:2014-08-0314 查看详情

下一步是啥();在这段代码中?

】下一步是啥();在这段代码中?【英文标题】:Whatisnext();inthiscode?下一步是什么();在这段代码中?【发布时间】:2013-08-2518:27:03【问题描述】:在这个Express应用程序(用于Nodejs)中有一行代码使用next();,我不明白。不知... 查看详情

Tigase:MUG 没有实现,下一步是啥?

】Tigase:MUG没有实现,下一步是啥?【英文标题】:Tigase:MUGnotimplemented,what\'snext?Tigase:MUG没有实现,下一步是什么?【发布时间】:2010-12-1011:59:02【问题描述】:我开始为iPhone/iPad开发多人游戏,我正在考虑使用Tigase作为游戏服... 查看详情

使用 libdbus-c++ 获得 DBus::Path - 下一步是啥?

】使用libdbus-c++获得DBus::Path-下一步是啥?【英文标题】:GotaDBus::Pathwithlibdbus-c++-whatnext?使用libdbus-c++获得DBus::Path-下一步是什么?【发布时间】:2013-05-0403:24:21【问题描述】:我有一个简短的测试程序,用于研究如何将D-Bus与libdb... 查看详情

学习了如何使用 HTML 和 CSS 从头开始​​制作响应式 HTML 电子邮件。下一步是啥? [关闭]

...如何使用HTML和CSS从头开始​​制作响应式HTML电子邮件。下一步是啥?[关闭]【英文标题】:LearnedhowtomakeresponsiveHTMLEmailsfromscratchusingHTML&CSS.What\'snext?[closed]学习了如何使用HTML和CSS从头开始​​制作响应式HTML电子邮件。下一步... 查看详情

在 vue app 中运行 npm build 以将其部署到服务器上后,下一步是啥?

】在vueapp中运行npmbuild以将其部署到服务器上后,下一步是啥?【英文标题】:Whatcanbethenextstepafterrunningnpmbuildinvueapptodeployitonserver?在vueapp中运行npmbuild以将其部署到服务器上后,下一步是什么?【发布时间】:2020-09-2804:34:53【问... 查看详情

Ruby on Rails:获取模型中的下一项

】RubyonRails:获取模型中的下一项【英文标题】:RubyonRails:Getnextiteminmodel【发布时间】:2011-11-0419:28:48【问题描述】:假设我只是在“显示”视图上运行railsgscaffoldbookname:stringabout:text,我将如何实现一个按钮以转到模型中的下一... 查看详情

r代码段显示了自定义的html表函数和示例。我的下一步是将此html表复制并粘贴到excel文件中,(代码片段)

查看详情

r代码段显示了自定义的html表函数和示例。我的下一步是将此html表复制并粘贴到excel文件中,(代码片段)

查看详情

如何使用javascript记录链接点击,然后自动点击Qualtrics中的下一步按钮?

】如何使用javascript记录链接点击,然后自动点击Qualtrics中的下一步按钮?【英文标题】:HowtorecordalinkclickandthenautomaticallyclicknextbuttoninQualtricswithjavascript?【发布时间】:2021-09-2201:11:02【问题描述】:我正在Qualtrics进行一项调查。... 查看详情

如何等待http请求在处理到angular 7中的下一步之前获得响应[重复]

】如何等待http请求在处理到angular7中的下一步之前获得响应[重复]【英文标题】:Howtowaitforhttprequesttogetresponsebeforeitprocesstonextstepinangular7[duplicate]【发布时间】:2019-06-2923:13:17【问题描述】:我正在尝试构建应用程序,我正在发送... 查看详情

如何组合两个结果并将其传递到 apache-beam 管道中的下一步

】如何组合两个结果并将其传递到apache-beam管道中的下一步【英文标题】:Howtocombinetworesultsandpipeittonextstepinapache-beampipeline【发布时间】:2020-11-1222:35:09【问题描述】:见下面代码sn-p,我希望["metric1","metric2"]成为... 查看详情

上一步是硬件描述语言,下一步是fpga

上一步是硬件描述语言,下一步是FPGA。学习了硬件描述语言(Verilog或者VHDL)之后,FPGA该如何继续。世上没有捷径,每一步都得踏踏实实的走。学习FPGA也是这样,在有了硬件描述语言的基础之上,可以学习FPGA基础。学习模块的划... 查看详情

相当于 Ruby 中的“继续”

】相当于Ruby中的“继续”【英文标题】:Equivalentof"continue"inRuby【发布时间】:2011-04-2922:20:07【问题描述】:在C和许多其他语言中,有一个continue关键字,当在循环内使用时,它会跳转到循环的下一次迭代。Ruby中有没有... 查看详情