web-dev-qa-db-ja.com

HOW-TO Rubyでハッシュの配列を作成する

Rubyと私はハッシュの配列を作成しようとしています(または、逆方向に持っていますか?)

def collection
  hash = { "firstname" => "Mark", "lastname" => "Martin", "age" => "24", "gender" => "M" }
  array = []
  array.Push(hash)
  @collection = array[0][:firstname]
end

@collectionは、位置0のオブジェクトの名を表示しません...何が間違っていますか?

前もって感謝します!

22
thedeepfield

Symbolオブジェクトをキーとして使用するHashオブジェクトへのインデックスとしてStringを使用しているため、次のようにします。

@collection = array[0]["firstname"]

Symbolsはキャッシュされるため、HashsではなくStringsキーとしてSymbolsを使用することをお勧めします。したがって、より効率的です。 :

def collection
  hash = { :firstname => "Mark", :lastname => "Martin", :age => 24, :gender => "M" }
  array = []
  array.Push(hash)
  @collection = array[0][:firstname]
end
48
Jacob Relkin

ハッシュのキーをStringとして定義しました。しかし、あなたはそれをSymbolとして参照しようとしています。それはそのようには動作しません。

試して

@collection = array[0]["firstname"]
2
Aurril

あなたはこれを行うことができます:

@collection = [{ "firstname" => "Mark", "lastname" => "Martin", "age" => "24", "gender" => "M" }]
2
RMazitov