まつもと ゆきひろです
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"] です.
いかがでしょう?
まつもと ゆきひろ /:|)