まつもと ゆきひろです

In message "[ruby-list:6279] Re: i++"
    on 98/02/05, 助田 雅紀 <masaki.suketa / tonen.co.jp> writes:

|助田です。

|>イテレータが何回繰り返したかを保持するローカルな内部変数「$ナントカ」
|>を作るという手は?また新しいの作るのいやかなあ、まつもとさまあ。
|確かに内部変数があると ++ の必要性はぐっと下がるような気もします。

原さんのメールの後,結構真剣に考えてみたんですが,Rubyのイテ
レータの場合『「イテレータが何回繰り返したか」を覚えておくべ
きオブジェクトが存在しない』という事実に気が付きました.外部
イテレータでしたら,カーソルオブジェクトに聞けば良いんでしょ
うけど.Rubyの場合ループの状態と言うのは本質的にイテレータメ
ソッドの任意のローカル変数ですから.とすると

  ary.each do |x|
     ...
    count = $ナントカ
  end

とすれば,毎回代入されるわけですから,当然ループを抜けた時に
は最後の値が残っているでしょうけど,なんともかっこう悪いです
よね.これを採用するんだったら,++の方を選びます.
# まだその気になってないけど.
                                まつもと ゆきひろ /:|)