Ruby 初心者スレッド ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
276:デフォルトの名無しさん 09/08/19 12:01:02 >>275 自分で考えてほしいからエラーのヒントだけ >hout=Hash.new >#hout[ary[i]] = hin >hout[ary[i]][key] += value >at.rb:12: undefined method `[]' for nil:NilClass (NoMethodError) 277:203 09/08/19 12:32:53 >>276 hout[ary[i]][key] Hashが二つ[][]を取っているのが気持ち悪いですし、それがundefined method `[]' for nil:NilClass (NoMethodError) を起こしているのだと思いますが・・・・。そうだとしても解決がわからないです。 278:デフォルトの名無しさん 09/08/19 12:44:23 >>277 >hout[ary[i]][key] k = ary[i] x = hout[k] y = x[key] と同じ で、このときのxはなんだとおもう? 279:203 09/08/19 12:50:17 >>278 xはhout[ary[i]]ですか? ということはhout[ary[i]]が一つのハッシュでhout[ary[i]][key]だとそれのキーということですか? 280:デフォルトの名無しさん 09/08/19 12:58:15 なんどめだナウシカ ハッシュの h[key] は、「ハッシュ機構」という特殊なものがあるわけじゃなくて 「オブジェクト h の [] メソッドに引数 key を渡している」 という処理を簡単に表記できるように特別扱いされたものに過ぎない h = {'one' => 1'} p h['one'] #=> 1 p h.[]('one') #=> 1 つまり、h['one']['two'] という表記があったなら、それは h.[]('one').[]('two') というメソッドチェーンを表しているに過ぎない メソッドチェーンだから、[]('two') のレシーバ、つまりドットの前の、h.[]('one') の返り値、 が nil だと普通に NoMethodError になる そんだけ
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5390日前に更新/180 KB
担当:undef