まつもと ゆきひろです

In message "[ruby-list:10687] Re: negative index of an array"
    on 98/11/06, Motoyuki Kasahara <m-kasahr / sra.co.jp> writes:

|笠原です。

|>   a[-4..0]              #=> 配列外を除く[1](現状も[1])
|
|これで良いと思います。最後の a[-4..0] は、
|
|	a[-4..0]
|	→ 配列外の a[-4] を除くので a[-3..0] と等価
|	→ a[0..0]
|	→ [1]
|
|ということですね。

です.

|別に前方への拡張にこだわりはないので、これで良いです。それぞれ 
|a = ["a","b","c"] のとき、以下のような結果で合っていますか?

えーと,配列外の調整が先で代入が後なので,

|  a[-4,2] = [0,1]         # a[-4] の分を除いて設定: a => [1,"b","c"]

は[0, 1, "b", "c"]になります.

|  a[-4,5] = [0,1,2,3,4]   # a[-4] の分を除くので a[-3, 4] つまり a[0, 4]
|                          # に設定: a => [1,2,3,4,"a","b","c"]

a[0,4] = [0,1,2,3,4]になりますから,結果は[0,1,2,3,4]です

|  a[-4..0] = [0,1,2,3,4]  # a[-4] を除いた a[0..0] に設定:
|                          # a => [1,2,3,4,"a","b","c"]

a[0..0] は a[0,1] ですから [0,1,2,3,4,"b","c"] です.

いかがでしょう?
                                まつもと ゆきひろ /:|)