blog.waterlow.work

Ruby, Rails, js, etc...

【Ruby】Gold試験対策-大域脱出

引き続きGoldの試験対策です。太字は今日やるところで、1重線はすでにやったところ。

実行環境
 →コマンドラインオプション、組み込み変数/定数

文法
 →変数と定数、演算子、ブロック、例外処理大域脱出

オブジェクト指向
 →メソッドの詳細、メソッドの可視性、クラスの詳細、クラスの継承、モジュールの詳細

組み込みライブラリ
 →よく使用されるクラス(Object、Kernel、Module等)
 →よく使用されるモジュール(Enumerable、Comparable等)
 →数値
 →正規表現

標準添付ライブラリ
 →よく使用されるライブラリ(socket、rdoc等)

大域脱出の書き方
catch :triple_loop do
  loop do
    puts 'one'
    loop do
      puts 'two'
      loop do
        puts 'three'
        throw :triple_loop
      end
    end
  end
end

特に言及すべき点はありませんね…。
以下のように脱出のときに戻り値を指定することもできます。

p catch(:triple_loop) {
  throw :triple_loop, "return"
} #=> "return"

これも…。出題されるとしたらどんなふうに出題されるのでしょうか?