From: a-nisida@... (=?ISO-2022-JP?B?GyRCQD5FRExATkkbKEo=?=) Date: 1997-11-22T16:29:10+09:00 Subject: [ruby-list:5398] 配列への追加について はじめまして、西田@初心者 と申します。m(..)m ずーっと興味はあったのですが、とにかく素人の悲しさ。なかなか取り組む手立 てがありませんでした。が、先日のTRY!PC の記事のおかげで やっと先日より rubyを 突つき始めることができました。 #TRY!PC の記事の所だけを切取って、常に持ち歩いています。ポイントを押さ #えた上に わかりやすいテキストで助かります。 まだ2週間ほどしか触っていないのですが、本当に面白いですね。テキスト処理 くらいから取り組んでいるのですが、いままで どうしてこんなことができない んだろうと、悔しい思いをしてた事が ウソみたいに解決しつつあります。 ところで、おそらく私が 根本的な間違いをしているのだろうと思うのですが、 丸3日間考えてもわからなかったので、どなたか お教えいただけないでしょう か。 下の様にイテレータの中で 簡単なテキスト処理をした結果を連想配列にしたも のを、array に << で追加したいのですが、何故か array の要素が 全部最後 に追加したものになってしまいます。つまり p array の結果が、 [{"c"=>"3", "a"=>"1", "b"=>"2"}, {"c"=>"7", "a"=>"9", "b"=>"8"}] と、なってほしいのですが、 [{"c"=>"7", "a"=>"9", "b"=>"8"}, {"c"=>"7", "a"=>"9", "b"=>"8"}] となってしまうのですが、いったい どこが、いけないのでしょうか? (環境は、Win95 での、ruby - version 1.1a0 (i386-djgpp) です。) ------------------------------------------------------------------ data=["a=0;b=2;c=3","a=9;b=8;c=7"] hash={} array=[] tmp=[] data.each do |x| hash.clear tmp=x.split(';') tmp.each do |y| name , value = y.split('=') hash[name]=value end array << hash end p array ------------------------------------------------------------------ ……………………………………………… 西田@神戸垂水 / Akiyoshi Nishida Email:a-nisida@post.co.jp, a-nisida@hh.iij4u.or.jp ………………………………………………