From: Nakamura Akifumi Date: 2000-12-21T22:58:20+09:00 Subject: [ruby-list:26697] Re: cgi.rb and Regexp::last_match お世話になっております。 A.中村です。 On Thu, 21 Dec 2000 15:33:14 +0900 "K.Kosako" wrote: > a = [1,[2,3]] > p a[1][2] # => nil > p a[2][1] # => Error > > の違いが、Rubyの動作がわかっている人には自明でも、 > そうでない人にはわからないのではないかと想像する > からです。(どちらも範囲外なのに) 多次元配列(であるかのように見える上記(^^;)の各次元の 非対称(?)性ってものに注目するっていう話ですかね。 うーん。対称(ってのかな)な配列がどれだけ恋しいか?っていう 問題っぽいですね。 あ。というよりも、 (配列などから)取り出した「値」が何であるか?っていう問題っすね。 上記の問題を、nilの責任じゃなくて、多次元配列(のようなもの)の責任 だと解釈すると、面白い(あるいは妙な)ことになるんじゃないかなと。 つまり、a[2]が「 []を 」返したら、どうなる(嬉しい)か?っていう。 #どっちが良いかは全くもってピンと来ません今の俺は。 まぁ、想定している範囲の沿え字の分については、 予め「他と整合するような「無効値」をもったオブジェクト」を 突っ込んでおくってのが、よろしいような気がします。はい。 てーか、どうせ、 a[1][2]+10 # => Error a[2][1]+10 # => Error エラーが出るタイミングが一瞬違うだけっていうか、 nilが出たら「次はエラーが出るのが約束されている」っていうか。 Errorではなくたまたまnilが出た瞬間を掴まえたときは あぁ俺は人生の節目に立っているのだなぁと思ってみたり(かなり嘘ですが…)