1
誰もが、私はここでエラーを取得していた理由を説明する気にハッシュに値を設定する:でしょうあなたはh = Hash.new
を記述する必要がルビー -
>> h = {'dog' => 'canine'}
=> {"dog"=>"canine"}
>> h["a"] = 100
=> 100
誰もが、私はここでエラーを取得していた理由を説明する気にハッシュに値を設定する:でしょうあなたはh = Hash.new
を記述する必要がルビー -
>> h = {'dog' => 'canine'}
=> {"dog"=>"canine"}
>> h["a"] = 100
=> 100
Hash.new
に電話する必要があります。あなたのコードでは、そのインスタンスではなく、Hashクラスをhに割り当てています。
irb(main):001:0> h = Hash
=> Hash
irb(main):002:0> h.class.name
=> "Class"
irb(main):003:0> h = Hash.new
=> {}
irb(main):004:0> h.class.name
=> "Hash"
を、すべて:
[~]$ irb
>> h = Hash
=> Hash
>> h["a"] = 100
NoMethodError: undefined method `[]=' for Hash:Class
from (irb):2
ではなく、ここで大丈夫ですか?それ以外の場合は、インスタンスではなくクラスのメソッドを参照しています。これは期待通りに機能します。
h = Hash.new
h['dog'] = 5