[ruby-list:415] local exits

From: matz@... (Yukihiro Matsumoto)
Date: 1996-08-14 02:32:06 UTC
List: ruby-list #415
まつもと ゆきひろです.

In message "[ruby-list:414] Re: reexecute from rescue [ Re: about exception ]"
    on 96/08/13, Yukihiro Matsumoto <matz@caelum.co.jp> writes:

|最初からやり直すのはredoです.nextだとそのclosureの実行を終
|了します.lambdaの場合はbreakと同じ動作です.
|# なんとなく違和感があるのでちょっと整理します.

整理してみました.

local exits

  break

    そのループの実行を中断する.イテレータの場合はイテレータ
    の実行を中断する.

  next

    そのループの次の実行にジャンプする.一度しか実行しないタ
    イプのイテレータ(なんか名前が自己矛盾しているような…)で
    は実行を終了することになる.イテレータの場合はyieldの実
    行が終了する.

  redo

    そのループを頭から再実行する.

  return

    現在の関数の実行を終了する.トップレベルからはreturn出来
    ない(コンパイルエラーになる).lambdaの中からはreturnでき
    ない(実行時エラーになる).

  retry

    rescueで使われた時

        beginから実行を繰り返す.

    イテレータの中で使われた時

        イテレータの実行を(イテレータの引数の評価から)やり直す
        

    イテレータブロックで使われた時

        イテレータの実行を(イテレータの引数の評価から)やり直す


違和感があった原因はやはり繰り返さないイテレータの存在でしょ
うね.うーむ名前を変えないといけないかなあ.しかし,以前のま
ま continue だったらもっと違和感があったなあ.

                                まつもと ゆきひろ /:|)

In This Thread

Prev Next