【问题标题】:Using `return` in ruby `each` method在 ruby​​ `each` 方法中使用`return`
【发布时间】:2016-01-25 02:58:59
【问题描述】:

我正在尝试创建一个执行搜索并在我键入搜索名称时返回其数组位置的代码。以下代码有效('Ned' 正确显示 1 的值):

array1 = ['Lucky', 'Ned', "Dusty'"]
counter = 0

name = 'Ned'
array1.each do |lookup|
  if lookup == name
    puts counter
  end
  counter += 1
end

但是,当我使用return counter 代替puts counter 时,代码返回错误。这是错误代码:

unexpected return
(repl):7:in `block in initialize'
(repl):5:in `each'
(repl):5:in `initialize'

我不明白为什么上面写着initialize。我不明白为什么它适用于 puts 并且不适用于 return。有人会解释为什么它不能return 成功打印该值吗?

【问题讨论】:

标签: ruby return


【解决方案1】:

因为return 是一种从方法(定义)中转义的方法。您在任何地方都没有方法定义。为此,您可以使用break

【讨论】:

    猜你喜欢
    • 2018-08-03
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多