まつもと ゆきひろです 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? はそれほど必要ではなくなってるかも知れません. まつもと ゆきひろ /:|)