我正在尝试创建一个搜索代码,并在输入搜索名称时返回其数组位置。以下代码有效('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
这个值吗?
答案 0 :(得分:7)
因为return
是一种从方法(定义)中逃避的方法。你在任何地方都没有方法定义。您可以将break
用于此目的。