【发布时间】:2015-05-09 03:53:32
【问题描述】:
我是学习 Ruby 的新手,在嵌套结构方面遇到了一些麻烦。
如果 :first 的值是“John”,我要做的是返回 :last name (“Doe”):
people = {
:family => [
{:first => "John", :last => "Doe"},
{:first => "Jane", :last => "Smith"}
]
}
people[:family].each {|index| return index[:last] if index[:first] == "John"}
但是,控制台给了我这个错误:
test.rb:8:in `block in <main>': unexpected return (LocalJumpError)
from test.rb:8:in `each'
from test.rb:8:in `<main>'
当我在控制台中对此进行测试并将“return”替换为“puts”时,它会返回“Doe”,但由于某种原因,“return”似乎导致了“意外返回 (LocalJumpError)”。我怎样才能成功返回这个值而不遇到这个错误?
谢谢 - 非常感谢任何和所有帮助!
【问题讨论】:
-
您在
.each内部返回,这与从方法返回不同(因此,意外)。你想要.select{}
标签: ruby