●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

Rubyのブロック(Block)とは?繰り返しやコールバック処理に使える便利な仕組み

Rubyのブロック(Block)は、メソッドに処理のかたまりを渡すことができる、非常に便利な機能です。 特に繰り返し処理や、コールバック的な使い方で多用されます。

Rubyでは、ブロックを使うことで簡潔で柔軟なコードを書くことができます。

ブロックとは?

ブロックは、メソッドの呼び出しに付ける処理のまとまりです。 {} または do ... end を使って記述します。

ブロックの基本的な書き方

3.times do
  puts "こんにちは!"
end

# または
3.times { puts "こんにちは!" }

上記は「3回繰り返す」メソッドにブロックを渡して処理しています。

ブロックに引数を渡す

5.times do |i|
  puts "#{i} 回目"
end

|i| はブロックの引数で、メソッドから渡された値を受け取ることができます。

yield を使ってブロックを呼び出す

自分で定義したメソッドの中で yield を使えば、ブロックを呼び出すことができます。

def greeting
  puts "こんにちは!"
  yield
  puts "また会いましょう!"
end

greeting do
  puts "ブロックの中です。"
end

出力結果:

こんにちは!
ブロックの中です。
また会いましょう!

ブロックに引数を渡す(yield版)

def twice
  yield(1)
  yield(2)
end

twice do |n|
  puts "呼び出し #{n} 回目"
end

ブロックを使うメリット

  1. コードが簡潔になる
  2. 柔軟な処理を渡せる
  3. 繰り返し処理やコールバックに最適

do...end と {} の違い

  • do...end は複数行の処理に向いている
  • {} は1行の処理に向いている

ブロックのないときの処理

def maybe
  if block_given?
    yield
  else
    puts "ブロックがありません"
  end
end

maybe           # → ブロックがありません
maybe { puts "ありました!" }  # → ありました!

まとめ

Rubyのブロック(Block)は、メソッドに処理の一部を渡すための柔軟で強力な仕組みです。 yield を使えば、自作メソッドにもブロックを活用できるようになります。

まずは timeseach など、標準メソッドのブロックを使いながら、自分でもブロックを受け取るメソッドを作ってみましょう!