[#43191] ActiveTclのインストール — HIiroshi Kasamatsu <qqmn89yb9@...>

こんにちは、笠松と申します。

13 messages 2007/02/17
[#43193] Re: ActiveTclのインストール — Hidetoshi NAGAI <nagai@...> 2007/02/18

永井@知能.九工大です.

[#43198] Re: ActiveTclのインストール — HIiroshi Kasamatsu <qqmn89yb9@...> 2007/02/18

永井さん、アドバイスありがとうございます。

[#43217] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 preview2 をリリースしました。

13 messages 2007/02/24

[ruby-list:43221] cloneというメソッドの機能について(質問)

From: "yahata hisashi" <yahatah@...>
Date: 2007-02-26 13:57:41 UTC
List: ruby-list #43221
cloneについての質問です。
下記のスクリプトのように、配列dのコピーを作るメソッドcloneを用いて、dmを
作ったのですが、dの内容が変化するとdmも変化します。
変数がオブジェクトそのものを格納する容器でなく、代入は同じオブジェクトへの参
照を発生させるだけで、オブジェクトをコピーしない。しかし、そのために、
コピーは、cloneというメソッドがあると認識していました。しかし、うまくい
きません。コピーを作るために、他の方法があるのでしょうか。
どなたか、よろしく、ご教示下さい。

<使用条件>
windows 2000
RDE上
ruby 1.8.4 (2005-12-24) [i386-mswin32]
=======================
d=[]
d[0]=%W( 20 16 19 13)  #"A"
d[1]=%W( 18 17 24 17)  #"B"
d[2]=%W( 25 23 21 27 ) #"C"

d.each{|l| l.collect!{|x| x.to_f}}  # dを文字から実数に変換
dm=d.clone
p d   #=>[[20.0, 16.0, 19.0, 13.0], [18.0, 17.0, 24.0, 17.0], [25.0, 23.0,
21.0, 27.0]]
p dm  #=>[[20.0, 16.0, 19.0, 13.0], [18.0, 17.0, 24.0, 17.0], [25.0, 23.0,
21.0, 27.0]]
n=d.flatten.size
xijm=20.0  # 総平均値
d.each{|l| l.collect!{|x| x-xijm }}  # 平均値からの偏差
p d     #=>[[0.0, -4.0, -1.0, -7.0], [-2.0, -3.0, 4.0, -3.0], [5.0, 3.0,
1.0, 7.0]]
p dm   #=>[[0.0, -4.0, -1.0, -7.0], [-2.0, -3.0, 4.0, -3.0], [5.0, 3.0, 1.0,
7.0]] dmは変化させたくないのに変化した。

矢幡 久


In This Thread

Prev Next