From: em6t-kbt@... Date: 2002-11-02T14:50:55+09:00 Subject: [ruby-list:36265] Re: ar=[];ar+=2でエラー 久保田です。 From: Fujimaru Hiroyasu Subject: [ruby-list:36263] Re: ar=[];ar+=2でエラー Date: Sat, 2 Nov 2002 14:00:56 +0900 >  藤丸です。 > > > > この場合のar[ 0 ]はnilであり > > > > nilというよりも、この1行目でarは > > > > 「からっぽ」 > > > > である、という感覚を体得するのを、俺はお勧めします。 > >  このあたりの話で便乗質問させて下さい。 > >  初期化されていないグローバル変数やインスタンス変数はnilですが、 > 初期化されていなローカル変数がnilになっていないのは何故なのでしょう? 「オブジェクト指向スクリプト言語Ruby」のp416によると、ローカ ル変数はC言語の配列に割当てられ、グローバル変数やインスタン ス変数はハッシュ表に割当てられています。 C言語の配列に割当てられているから、ローカル変数は最初から実 体があるのでそれを返すのでしょう。ハッシュ表に割当てられてい る場合には、一番最初に使われた時そもそも返すべき値がないので、 初期値としてnilに決めているのだと思います。 ソースなんか見たこともなく言っているので、うそだったらごめん なさい。 ---------------------------------------------- 久保田俊也 E-mail:em6t-kbt@asahi-net.or.jp http://www.asahi-net.or.jp/~em6t-kbt/