在ruby`all`方法中使用`return`

时间:2016-01-25 02:59:00

标签: ruby return

我正在尝试创建一个搜索代码,并在输入搜索名称时返回其数组位置。以下代码有效('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这个值吗?

1 个答案:

答案 0 :(得分:7)

因为return是一种从方法(定义)中逃避的方法。你在任何地方都没有方法定义。您可以将break用于此目的。