如何在Ruby中创建哈希数组

the*_*eld 22 ruby arrays hash push

ruby的新手,我正在尝试创建一个哈希数组(或者我是否向后?)

def collection
  hash = { "firstname" => "Mark", "lastname" => "Martin", "age" => "24", "gender" => "M" }
  array = []
  array.push(hash)
  @collection = array[0][:firstname]
end
Run Code Online (Sandbox Code Playgroud)

@collection没有显示位置0中对象的名字...我做错了什么?

提前致谢!

Jac*_*kin 48

您使用a Symbol作为Hash使用String对象作为键的对象的索引,因此只需执行以下操作:

@collection = array[0]["firstname"]
Run Code Online (Sandbox Code Playgroud)

我鼓励你使用Symbols作为Hash键而不是Strings,因为Symbols被缓存,因此效率更高,所以这将是一个更好的解决方案:

def collection
  hash = { :firstname => "Mark", :lastname => "Martin", :age => 24, :gender => "M" }
  array = []
  array.push(hash)
  @collection = array[0][:firstname]
end
Run Code Online (Sandbox Code Playgroud)