Ruby 初心者スレッド Part 30
■ このスレッドは過去ログ倉庫に格納されています
0280デフォルトの名無しさん
2009/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 になる
そんだけ
■ このスレッドは過去ログ倉庫に格納されています