[#47173] 小数点以下を切り捨てる方法について — "T.Soejima" <clev@...2.so-net.ne.jp>

お世話になっております。そえじま@勉強中です。

16 messages 2010/06/23

[ruby-list:47121] Re: 配列の配列を返すmap

From: "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
Date: 2010-06-01 11:37:40 UTC
List: ruby-list #47121
きしもとです

> 配列の配列を返すmapで、理解できない現象に困っています。
> 
> 整数の配列から、隣り合う要素のペアの配列を返すという、簡単なscriptです。
> 
> aA=[10, 20, 30, 40, 50]
> aX=[0, 0]
> 
> aY=aA.map{|x|
>     aX.push(x).shift
>     p aX
>     [aX, aX[0], aX[1]]
> }
> 
> p aY
> 
> 実行すると
> 
> [0, 10]
> [10, 20]
> [20, 30]
> [30, 40]
> [40, 50]
> [[[40, 50], 0, 10], [[40, 50], 10, 20], [[40, 50], 20, 30], [[40, 50], 30, 40], [[40, 50], 40, 50]]
> 
>  [aX, aX[0], aX[1]]の中のaXは、すべて[40, 50]を返します。
> 
> なにか使い方をまちがっているのでしょうか。

aX はずっとひとつの同じ配列オブジェクトを指してるからです。
どのようになることを期待していたのでしょうか? あるいは、どのようにしたいのでしょうか?

In This Thread