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