我有这个 hash $chicken_parts
,它由符号/哈希对组成(比这里显示的要多得多):
$chicken_parts = { :beak = > {"name"=>"Beak", "color"=>"Yellowish orange", "function"=>"Pecking"}, :claws => {"name"=>"Claws", "color"=>"Dirty", function"=>"Scratching"} }
然后我有一个Embryo
具有两个特定于类的哈希的类:
class Embryo
@parts_grown = Hash.new
@currently_developing = Hash.new
随着时间的推移,新的对 from$chicken_parts
将被.merge!
编入@parts_grown
. 在不同的时间,@currently developing
将被声明为等于来自@parts_grown
.
我正在创建 Embryo 类函数,我希望能够访问"name"
、"color"
和中的"function"
值@currently_developing
,但我似乎无法做到。
def grow_part(part)
@parts_grown.merge!($chicken_parts[part])
end
def develop_part(part)
@currently_developing = @parts_grown[part]
似乎按预期填充哈希,但是
puts @currently_developing["name"]
不起作用。这整个计划是个坏主意吗?我是否应该将 Embryo 散列变成 $chicken_parts 中的符号数组,并在需要时引用它?出于某种原因,这对我来说似乎是在作弊......