🍣

[Feature #21822] ensure 節で戻り値を取得できるようにする提案

に公開

[Feature #21822] Expose Return Value in the ensure Block

  • ensure で戻り値を取得できるようにする提案
  • 例えば次のような戻り値をデバッグ出力するようなことを想定
begin
  # ...
ensure => ret
  # いずれかで例外が発生した場合は ret = nil になる
  LOGGER.debug "return value: #{ret}"
end
  • これ、前からずーーーーーーーーーーっとほしいと思っていた機能なんですよね
  • 現状だと最後の値を都度変数に割り当てる必要があるんですがこれがめっちゃ手間なんですよねえ…。
begin
  # ...
  # 最後の値を都度変数に代入した上で ensure で参照する
  result = last_expr
ensure => ret
   LOGGER.debug "return value: #{result}"
end
  • 現状は特に進展はなさそうなんですがさて…
GitHubで編集を提案

Discussion