[#380] bug report#3 and request#5 — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
1 message
1996/08/06
[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 だったらもっと違和感があったなあ.
まつもと ゆきひろ /:|)