-2

1 つのキー (「foo」など) を共有するが値が異なる 2 つのハッシュがあるとします。ここで、属性として選択したハッシュに応じてキーの値を出力する 1 つの属性を持つメソッドを作成したいと考えています。それ、どうやったら出来るの?

私が試してみました:

def put_hash(hash)
   puts hash("foo")
end

しかし、ハッシュを使用してこの関数を呼び出すと、以下のエラーが表示されます。

undefined method `hash' for main:Object (NoMethodError) 
4

3 に答える 3

1

次の方法で値にアクセスする必要があります[]

puts hash["foo"]

そうしないと、Ruby は でメソッドを呼び出そうとしていると判断し、そのスコープで()メソッドが呼び出されていないため、エラーが表示されます。hash

于 2013-06-28T15:35:47.563 に答える
0

次のように書きます

def put_hash(hash)
   puts hash["foo"]
end
h1 = { "foo" => 1 }
h2 = { "foo" => 2 }
put_hash(h2) # => 2

ここを見てHash#[]

要素参照 - キー オブジェクトに対応する値オブジェクトを取得します。

于 2013-06-28T15:36:03.790 に答える