From: "K.Kosako" Date: 2000-12-21T17:28:26+09:00 Subject: [ruby-list:26683] Re: cgi.rb and Regexp::last_match > 前田です。 > > > NilClass#[]の段階で気付かなくても、 > > その値(nil)に、さらに別のメソッドが投げられる時点で > > エラーになるので、実際にはほとんど弊害はないのでは > > ないかと思うのですが。 > > たとえば、その値をprintしてるだけだったらエラーにはなりませんよね。 > で、出力が出てなくてなぜだろうと悩む、とケースはあり得るのではな > いでしょうか。 こんな例でしょうか。 a = nil b = a[n] printf "%s", b 確かにエラーになりません。 でも、aがnilではなく中身をもった配列であったとしても、 a[n]が範囲外であれば、やはりbはnilになるので、 そこまで考えると、配列を範囲外でアクセスしただけでも nilを返さずに、エラーを起こすべきではないでしょうか。 > そういう問題を別にしても、nil[0]がエラーにならないというのは(私に > は)心理的に抵抗があります。 人それぞれなので、心理的な問題は議論にはなりませんが。 nilの意味が、"値がない"を表しているとすれば、 "値がない"ものの中のn番目も、"値がない"と答えるだけなので、 別に不思議はないように思います。 --- 小迫@ソフネック 渋谷区恵比寿1-15-1