しげひろです. > Date: Thu, 5 Feb 98 11:55:35 +0900 > Subject: [ruby-list:6262] Re: i++ > Message-Id: <199802050255.LAA25496 / picachu.netlab.co.jp> > Enumerableならsizeを使うってのはどうでしょう. > > p File.open(path).size > > でファイルの行数がとれます. ええとですね, ファイルだったら, tutorial のように while file.gets とかすれば良いし, 最初から大きさが分かっている場合は, 特に気にしていま せん. 例えば, あるアルゴリズムのプログラムを試作して, 計算複雑度の評価をしよ うとすると, ある箇所を何度通ったか知りたくなるわけです. そういう時は if condition then counter.1増やす とかいったことをしないと仕方がないかな, と. ---- > Date: Thu, 5 Feb 98 16:19:16 +0900 > Subject: [ruby-list:6282] Re: i++ > Message-Id: <199802050719.QAA00202 / picachu.netlab.co.jp> > 原さんのメールの後,結構真剣に考えてみたんですが,Rubyのイテ > レータの場合『「イテレータが何回繰り返したか」を覚えておくべ > きオブジェクトが存在しない』という事実に気が付きました. ですが, 「イテレータが何回繰り返したか」という情報は, 本来イテレータが 備えている性質で, イテレータとともに実装される * べき * なのでしょうか? オブジェクト指向的に考えると, ここで用意されるべきは カウンタークラス ?? のようなものだと思います. これがあれば, ++ の用途はほとんどケアできるのではないかと... (ちなみに, 皆様が ++ をどういう目的で使っているのか調べるというのは面 白そう...) 例えば, - incr とかいうメソッドでカウントしたり, - per_times(10) とかいうメソッドで, カウントして 10 回ごとに TRUE を返 したり... まあ, そんなものまで組み込みクラスにするのは ?? ですし, 自分で作れば良 いのですが. でも, (自分で言っておいて ナン ですが) 作るぐらいなら, i += 1 かなあ (^^;;; > 外部 > イテレータでしたら,カーソルオブジェクトに聞けば良いんでしょ > うけど. ところで, これ↑は無いんでしょうか. (実は, 欲しかったりする.) ---- 重弘裕二 阪大情報処理教育センター (sigehiro / rd.ecip.osaka-u.ac.jp) 阪大工情報システム白川研 (sigehiro / ise.eng.osaka-u.ac.jp)