我想要创建一个由类定义的对象(例如,狗),然后使用列表中的键和来自这些对象的值填充散列。我试图做到这一点,像这样:将自定义对象放入哈希中
myHash = {}
class Dog
attr_accessor :name, :weight
end
doglist = ['spike', 'spot']
doglist.each do |pupper|
tempObj = Dog.new
tempObj.name = pupper
myHash.merge!(pupper: tempObj)
-at结束时,我会想这个hash,有钥匙spike
且已存储的名称spot
。每当我尝试使用myHash ['spike']。我得到: undefined method "name" for nil:NilClass (NoMethodError)
作为输出。
任何想法,我做错了什么?
你想你的最后的哈希看起来像什么? –
如果我们使用的是我给出的例子,那么我的理想散列结果将如下所示: myHash = {'spike':<带名称的狗对象>, 'spot':<带名称的狗对象> } – sharp