●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

Rubyのyield(ブロック呼び出し)とは?ブロックの使い方と柔軟なメソッド設計

Rubyでは、メソッドに渡されたブロック(処理のかたまり)を実行するために、yield というキーワードを使います。 これにより、メソッドの中で柔軟な処理を呼び出すことができます。

基本構文

def greeting
  puts "こんにちは!"
  yield
  puts "また来てね!"
end

greeting { puts "ブロックの中です" }

この例では、yield により、greeting メソッドに渡されたブロックが呼び出されます。

引数を渡す

def repeat_three_times
  3.times do |i|
    yield(i)
  end
end

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

yield(引数) とすることで、ブロックに引数を渡すことができます。

ブロックが渡されているか確認(block_given?)

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

safe_call                    # → ブロックがありません
safe_call { puts "あります" }  # → あります

block_given? は、ブロックが与えられているかどうかを確認するメソッドです。

yield の使いどころ

  • 繰り返し処理を任意の処理でカスタマイズしたいとき
  • 処理の前後に共通の処理を挟みたいとき
  • コールバック的な使い方をしたいとき

例:共通処理を囲む

def with_logging
  puts "処理開始"
  yield
  puts "処理終了"
end

with_logging { puts "データを更新中..." }

このように、前後の処理はメソッドで定義し、中身の処理だけをブロックで切り替えると便利です。

yield と Proc の違い

yield暗黙的に渡されたブロックを呼び出すのに対し、Proc明示的にオブジェクトとして渡す方法です。

def call_proc(proc)
  puts "前"
  proc.call
  puts "後"
end

say_hello = Proc.new { puts "こんにちは!" }
call_proc(say_hello)

まとめ

Rubyの yield は、メソッドに渡されたブロックを呼び出すシンプルな手段です。 ブロックと組み合わせることで、柔軟で再利用性の高いメソッド設計が可能になります。

また、block_given? を使えば、安全に呼び出しを行うことができ、処理の可読性や汎用性も高まります。 まずは簡単な yield の使い方から試してみましょう!

 

Ruby関連用語集

−−−−−  Ruby  −−−−−

Rubyのオブジェクト指向とは?クラスやメソッドの仕組みをわかりやすく解説

Rubyのクラス(Class)とは?オブジェクトの設計図を学ぼう

Rubyのモジュール(Module)とは?コードを整理・共有する仕組みを学ぼう!

Rubyのメソッド(Method)とは?定義と使い方をやさしく解説

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

Rubyのイテレータ(Iterator)とは?繰り返し処理の基本をマスターしよう!

RubyのEnumerableモジュールとは?便利な繰り返し処理を一気に習得!

RubyのProc(プロック)とは?ブロックをオブジェクト化して使いこなそう

RubyのLambda(ラムダ)とは?Procとの違いも含めてやさしく解説!

Rubyのシンボル(Symbol)とは?文字列との違いと使いどころをわかりやすく解説

Rubyのハッシュ(Hash)とは?キーと値のペアでデータを扱う基本構造

Rubyの配列(Array)とは?基本構文と便利な操作方法をマスターしよう!

Rubyのスコープ(Scope)とは?変数の見える範囲を理解しよう

Rubyのインスタンス変数(@変数)とは?クラスでデータを保持する基本

Rubyのクラス変数(@@変数)とは?全インスタンスで共有する値を管理する

Rubyの定数(Constant)とは?値を固定するための書き方と使い方

Rubyのグローバル変数($変数)とは?使い方と注意点をやさしく解説

Rubyのself(自己参照)とは?使い方と意味をやさしく解説!

Rubyの継承(Inheritance)とは?コードの再利用と拡張の基本

Rubyのミックスイン(Mixin)とは?モジュールで機能を共有する方法

Rubyのメソッドのオーバーライド(Override)とは?継承したメソッドを再定義しよう

Rubyの例外処理(Exception Handling)とは?エラー発生時の安全な対処法

Rubyのbegin-rescue-end構文とは?エラーを安全に処理する基本構文

Rubyのyield(ブロック呼び出し)とは?ブロックの使い方と柔軟なメソッド設計

Rubyのrequire / loadとは?外部ファイルの読み込み方法と使い分け

Rubyのgem(RubyGems)とは?便利なライブラリの管理方法を解説!

Bundlerとは?Rubyのgemを簡単に管理できる便利ツール

RubyのRakeとは?ビルドやタスクを自動化する便利ツールを解説!

IRB(Interactive Ruby)とは?Rubyを手軽に試せる対話型ツール

Rails(Ruby on Rails)とは?Webアプリ開発の強力フレームワーク

 

 

学校案内

17,000円の講座から!

質問には24時間以内に返答・質問回数は無制限など万全の学習サポート!

是非ご閲覧下さい!

札幌情報技術学院インターネットカレッジ トップページ