Rubyと私はハッシュの配列を作成しようとしています(または、逆方向に持っていますか?)
def collection
hash = { "firstname" => "Mark", "lastname" => "Martin", "age" => "24", "gender" => "M" }
array = []
array.Push(hash)
@collection = array[0][:firstname]
end
@collectionは、位置0のオブジェクトの名を表示しません...何が間違っていますか?
前もって感謝します!
Symbol
オブジェクトをキーとして使用するHash
オブジェクトへのインデックスとしてString
を使用しているため、次のようにします。
@collection = array[0]["firstname"]
Symbol
sはキャッシュされるため、Hash
sではなくString
sキーとしてSymbol
sを使用することをお勧めします。したがって、より効率的です。 :
def collection
hash = { :firstname => "Mark", :lastname => "Martin", :age => 24, :gender => "M" }
array = []
array.Push(hash)
@collection = array[0][:firstname]
end
ハッシュのキーをString
として定義しました。しかし、あなたはそれをSymbol
として参照しようとしています。それはそのようには動作しません。
試して
@collection = array[0]["firstname"]
あなたはこれを行うことができます:
@collection = [{ "firstname" => "Mark", "lastname" => "Martin", "age" => "24", "gender" => "M" }]