Ruby procオブジェクトで同一処理をまとめて書こう!

Rubyのprocオブジェクトについてです。

同一処理を書く場合に便利なのでチェックしていきます!

 

使い方は以下の通りです。

  1. Proc.new { } カッコの中に処理を書く。
  2. newで取得した変数.call でカッコ内の処理を実行する。
  3. その後Proc処理内で変更したいパラメータがあれば変更も可能。

このような感じです。

 

まずは引数なしのバージョンです。

param = "テストパラメータ"

proc = Proc.new {
  puts "これは#{param}という変数です。"
}
proc.call
# これはテストパラメータという変数です。

param = "やっぱりテスト用パラメータ"
proc.call
# これはやっぱりテスト用パラメータという変数です。

 

次に引数ありのバージョンです。

proc = Proc.new { |param1, param2|
  puts param1 * param2
}
proc.call(1, 3)
# => 3

proc.call(3, 5)
# => 15

 

こんな感じで特定処理を何度もするときにとてもきれいに書くことができます(*^^*)

 

何か参考になれば幸いです(*^^*)