Rubyのブロック構文とyieldの使い方

Rubyにはブロック構文(ブロック付きメソッド)という構文があります。このブロック構文の使い方について説明します。

ブロック構文の例

ブロック構文は、eachメソッドなどで使われます。eachメソッドは、配列[1, 3, 7, 2, 5]の要素を1つずつ取り出し、do-endの記述された処理を実行します。

xは、取り出された要素が入る変数(ブロック引数)で、そのxについてdo-endまでのことを行ないます。このdo~endをブロック構文と言います。do-endを{ }に置き換えて、以下のように記述することもできます。
 

do-end 、{ } いずれの形式でも構わないのですが、1行に収まるときは{ }、複数行になるときはdo endが好まれる傾向があります。

ブロック構文を使ったメソッドの作成

ブロック構文を使ったメソッドは、メソッドに渡されたブロックを実行するyieldを使うことで記述できます。

また、yieldに引数を渡すことで、ブロック引数として使うことができます。以下では、"block"をブロック引数のnameに渡しています。

実行結果

クラスでブロックつきメソッドを使う

また、クラスでもブロックつきメソッドを定義することはできます。以下は、簡易版のeachメソッドをSampleEachクラスに定義する例です。

実行結果


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて