まつもと ゆきひろです
In message "[ruby-list:10246] Re: for が修飾子だったら"
on 98/10/22, Shin-ichro Hara <sinara / blade.nagaokaut.ac.jp> writes:
|原です。
|ruby では単なるメソッドとイテレータは構文上同じなんですよ。
|例えば each をイテレータブロックがなくてもエラーを起こさな
|い様に再定義できます。
まあ,そうですね.更にいえば「イテレータ」は「ある特性(ブロッ
クを受け取る)を持っているメソッド」のことで,構文上もなにも
まったく同じものです.原さんはもちろんご存知でしょうけど.捕
捉として.
|あるメソッドがブロックを伴っているかどうかは iterator? で判
|断します。だからブロックを伴う時とそうでない時と違う動作をす
|るようなメソッド(=イテレータ)を作ることもできるわけです。
歴史的な事情から iterator? という名前になってますが,本来は
block_given?
とかいうような意味です.1.1では「ブロック引数」がありますか
ら,iterator? はそれほど必要ではなくなってるかも知れません.
まつもと ゆきひろ /:|)