こんにちは,堀越です. From: gotoken / math.sci.hokudai.ac.jp Subject: [ruby-list:14424] Re: substitution, variable (Re: はじめまして ) Date: Sat, 22 May 1999 02:45:18 +0900 > >やりたかったことは,配列要素を順に書き換える前に,別の処理のため > >一部処理前のデータを保存しておくということでしたが,まだ,Cや > >Perlでの感覚を持ち込んでいるようです. > > はじめに外野がいろいろ言うと覚えることが多いと感じて気力をそ > ぐかも知れませんが、お節介なので言っちゃうと、その手の処理は > Ruby では collect というイテレーターをつかうと簡潔にできます。 > > days = ["1999/05/16", "1999/05/19", "1999/05/22"] > quoted_days = days.collect{|d| "`" + d + "'"} > p days > p quoted_days 新たに別の配列をつくって,そちらに処理後のデータを格納する わけですね.これならシンプルに記述できそうです. # "p"という命令も知りませんでした. > など。メソッド each もイテレーターで実は for 制御も一種のイ > テレーターなのですが、collect と for は要素を一つづつ取り出 > すメソッド each を使って実現されています。また collect は > Enumerable という組み込みモジュールで定義されていて、組み込 > みクラス Array は Enumerable をインクルードしています。次の > 機会にでもお試し下さい。覚えると病み付きになること請け合い (^^; 自分にとっては,旧来型の繰り返し処理からイテレータによる スマートな処理への移行が,最も難関ではないかと思っていますが, その便利さにはすでに病み付きにありつつあります. # 気持は先に行ってるが,頭がなかなかついて来てくれない.(^_^; 役立つ情報,ありがとうございます. /****************************************************** 堀越 健治 (Kenji Horikoshi) k-horix / s.email.ne.jp ------------------------------------------------------- ローマは一日にしてならず.せめて二日はほしい. ******************************************************/