【发布时间】:2013-06-08 17:03:52
【问题描述】:
我对 Ruby 很陌生(我来自 C++ 背景),并且我有一个对象数组/哈希,但在尝试访问它们的变量时我没有运气。这是我的尝试:
class Foo
attr_reader :num
def initialize(num)
@num = num
end
end
foo_list = {}
foo_list["one"] = Foo.new("124")
foo_list["two"] = Foo.new("567")
foo_list.each do |foo|
p "#{foo.num}" # ERROR: undefined method 'num'
end
我很确定有一种简单的方法可以做我需要的事情,甚至可能不使用“每个”而是其他东西?
【问题讨论】:
-
提个建议,您可以在块中打印出
foo,看看foo究竟是什么。此外,Ruby 文档非常好。只需在谷歌上搜索“ruby hash”,然后查找each方法,就会让你走上正轨。 ruby-doc.org/core-2.0/Hash.html#method-i-each -
或者,如果您让 Ruby 构建其内置文档,命令行中的
ri Hash将显示各种方法。ri Hash.each会提供更多特定于each的信息。