【Ruby】irbで対話的にRubyを試す方法

Ruby

こんにちは、かつコーチです。

「ちょっとこのコードの動きを確認したいだけなのに、ファイルを作って実行するのが面倒」。
そんな悩みを解決してくれるのがirbです。
この記事では、irbの起動方法や基本的な使い方、ppputsの違いを初心者向けに解説します。
irbを使いこなせるようになると、学習効率が大きく上がります。

irbとは?

対話的にRubyを実行できるツール

irb(Interactive Ruby、あいあーびー)は、Rubyに標準で付属している対話型の実行環境です。
ファイルを作らなくても、ターミナルに直接Rubyのコードを1行ずつ入力し、その場で結果を確認できます。

こうした対話的にコードを実行できる環境のことを、一般にREPL(Read-Eval-Print Loop)と呼びます。
「入力を読み取り(Read)、評価し(Eval)、結果を表示する(Print)」処理を繰り返す(Loop)仕組みという意味です。
irbはRuby版のREPLだと考えると分かりやすいでしょう。

なぜirbが便利なのか

学習中に「この書き方で本当に動くのか」「このメソッドはどんな値を返すのか」を確認したい場面は頻繁にあります。
そのたびにファイルを作成し、ruby ファイル名.rbで実行するのは手間がかかります。
irbを使えば、思いついた瞬間にコードを試し、結果をすぐ確認できます。

irbの起動方法

ターミナルからirbを立ち上げる

rbenvなどでRubyをインストール済みであれば、追加の準備は不要です。
ターミナルで次のコマンドを実行するだけで、irbが起動します。

$ irb
irb(main):001> 

irb(main):001>という表示がプロンプトです。
ここにRubyのコードを入力していきます。

irbを終了する

irbを終了するには、exitと入力するか、Ctrl + Dを押します。

irb(main):001> exit

簡単な式を評価してみる

計算やメソッド呼び出しをその場で試す

irbでは、入力したコードの実行結果が自動的に表示されます。
まずは簡単な計算から試してみましょう。

irb(main):001> 1 + 2
=> 3

irb(main):002> "Ruby" + "は楽しい"
=> "Rubyは楽しい"

irb(main):003> [1, 2, 3].sum
=> 6

=>の後ろに表示されているのが、その式の評価結果(戻り値)です。
このように、putsを書かなくても値を確認できるのがirbの大きな特徴です。

変数やメソッドも通常のRubyと同じように使える

irbの中でも、変数の定義やメソッドの定義が可能です。

irb(main):001> def greeting(name)
irb(main):002>   "こんにちは、#{name}さん"
irb(main):003> end
=> :greeting

irb(main):004> greeting("かつコーチ")
=> "こんにちは、かつコーチさん"

複数行にまたがるコード(defendなど)も、閉じるまで自動的に続きの入力を受け付けてくれます。

pp・putsとの違い

putsは画面表示、irbは戻り値を表示する

初心者が混乱しやすいポイントとして、putsとirbの結果表示の違いがあります。
putsはRubyのメソッドの一つで、値を画面に出力するためのものです。
irbの=>表示は、putsを使わなくても、入力した式の戻り値を自動的に見せてくれる機能です。

irb(main):001> puts "Hello"
Hello
=> nil

この例では、puts "Hello"によってHelloという文字が画面に出力されています。
そのうえで、putsメソッド自体の戻り値であるnilが、irbによって=>の後ろに表示されています。
つまり出力が2段階になっている点に注意が必要です。

ppは構造がわかりやすい形で表示する

ppは「pretty print」の略で、配列やハッシュなど複雑なデータを見やすく整形して表示するメソッドです。
irbの中では、実はputsよりppを使う場面の方が多くなります。

irb(main):001> puts({name: "かつコーチ", age: 30})
{:name=>"かつコーチ", :age=>30}
=> nil

irb(main):002> pp({name: "かつコーチ", age: 30})
{:name=>"かつコーチ", :age=>30}
=> {:name=>"かつコーチ", :age=>30}

小さなハッシュではあまり差を感じませんが、ネストが深いデータになるほどppの整形表示が威力を発揮します。
私が初心者だった頃、ネストしたハッシュをputsで表示しようとしてnil{...}が混ざって読みにくく、原因がわからず戸惑ったことがあります。
以降、構造を確認したいときはppを使う癖をつけるようにしています。

よくあるつまずきポイント・エラー対処

複数行の入力中に閉じ忘れてirbが固まったように見える

❌Before(つまずきやすい例)

irb(main):001> if true
irb(main):002>   puts "OK"

endを書き忘れると、プロンプトがirb(main):002>のまま先に進まず、「固まった」ように見えてしまいます。

✅After(解決方法)

irb(main):001> if true
irb(main):002>   puts "OK"
irb(main):003> end
OK
=> nil

ifdefdoは、必ず対応するendとセットで書く必要があります。
不安なときは、一度endだけ追加で入力してみると、正しく閉じられます。

まとめ

この記事のポイント

  • irbはRubyに標準で付属する対話型の実行環境(REPL)
  • ターミナルでirbと入力するだけで起動でき、exitで終了する
  • irbは式を入力するだけで=>の後ろに戻り値を自動表示してくれる
  • putsは画面出力用のメソッド、ppは複雑なデータを見やすく整形表示するメソッドという違いがある

次に読むべき記事

irbの使い方がわかったら、実際にRubyの基本文法を学んでいきましょう。
「変数とデータ型の基本」で、Rubyのデータの扱い方を確認してみてください。

タグ: Ruby, 初心者向け, 環境構築

タイトルとURLをコピーしました