我是 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_list.each do |key, value|
puts "#{key}: #{value}"
end
或者您可以扩展您自己的示例(这里的 foo 将是一个包含键和值的数组):
foo_list.each do |foo|
puts "#{foo[0]}: #{foo[1]}"
end
或者你可以在没有 each 的情况下这样做:
puts "one: #{foo_list["one"]}"
puts "two: #{foo_list["two"]}"
祝您学习 Ruby 愉快! :-)
关于ruby - Ruby 中对象的哈希/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17001835/