ruby - Ruby 中对象的哈希/数组

标签 ruby arrays object hash

我是 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/

相关文章:

javascript - 如何使用filter方法返回通过过滤测试的对象内部的另一个属性?

ruby-on-rails - 更新 session 超时 rails 上的属性

ruby-on-rails - 在 Rails 4 的模型/类中定义自定义方法

javascript - 如何在 JavaScript 中拆分数组的查询字符串

arrays - Perl "scalar"函数在空数组上返回 "1"

javascript - 使用 Javascript 获取对象实例的变量值

ruby-on-rails - 使用带有条件的 has_one 来查找相关对象,但是如何创建相关对象呢?

ruby - 在 Ruby 中创建一个接受额外参数的 setter 方法

php - 使用 PHP 进行 MySQL 查询的 JSONArray 不适用于复杂的查询

java - 如何径向移动图片?