こんにちは、かつコーチです。
「ちょっとこのコードの動きを確認したいだけなのに、ファイルを作って実行するのが面倒」。
そんな悩みを解決してくれるのがirbです。
この記事では、irbの起動方法や基本的な使い方、ppとputsの違いを初心者向けに解説します。
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("かつコーチ")
=> "こんにちは、かつコーチさん"
複数行にまたがるコード(def〜endなど)も、閉じるまで自動的に続きの入力を受け付けてくれます。
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
ifやdef、doは、必ず対応するendとセットで書く必要があります。
不安なときは、一度endだけ追加で入力してみると、正しく閉じられます。
まとめ
この記事のポイント
- irbはRubyに標準で付属する対話型の実行環境(REPL)
- ターミナルで
irbと入力するだけで起動でき、exitで終了する - irbは式を入力するだけで
=>の後ろに戻り値を自動表示してくれる putsは画面出力用のメソッド、ppは複雑なデータを見やすく整形表示するメソッドという違いがある
次に読むべき記事
irbの使い方がわかったら、実際にRubyの基本文法を学んでいきましょう。
「変数とデータ型の基本」で、Rubyのデータの扱い方を確認してみてください。
タグ: Ruby, 初心者向け, 環境構築