Ruby 入門

Ruby IRB

IRB(Interactive Ruby Shell、インタラクティブ Ruby シェル)は、Ruby デベロッパーにとって不可欠なツールです。Ruby のコードスニペットを実行し、様々なコマンドを実験し、アイデアを迅速に検証するためのインタラクティブな環境を提供します。

Ruby の学習、プログラムのデバッグ、そして言語特性のリアルタイムな探索に最適なアプローチです。IRB はコードに対して即座にフィードバックをリターンするため、学習プロセスがより効率的かつ魅力的なものになります。自由に探索し、Ruby という言語の魔法を発見できるデジタルの遊び場(プレイグラウンド)と考えると良いでしょう。

1. IRB の起動

IRB は Ruby とともにインストールされるため、追加のインストール作業は不要です。IRB を起動するには、ターミナルまたはコマンドプロンプトを開き、irb とタイプして Enter キーを押すだけです。

irb(main):001:0> のようなプロンプトが表示されるはずです。これは、IRB が Ruby コマンドを受信する準備が完了していることを示しています。

2. 基本的な使い方と終了方法

シンプルな Ruby コードを試してみましょう:

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

irb(main):002:0> puts "Hello, IRB!"
Hello, IRB!
=> nil

irb(main):003:0> x = 5
=> 5

irb(main):004:0> x * 2
=> 10

ご覧の通り、IRB はコードを1行タイプするごとに即座に実行し、結果をディスプレイします。

  • puts は文字列をコンソールにプリントし、nil(Ruby における null 値)をリターンします。
  • 変数 x5 をアサインすると、IRB はアサインされた値をディスプレイします。
  • 最後に、x に 2 を掛けると、IRB は結果として 10 をリターンします。

IRB の終了方法

IRB を終了するには、exit とタイプするか、キーボードの Ctrl + D(ほとんどのシステムで有効)を押してから Enter キーを押します。これにより、通常のターミナルインターフェースにリターンします。

3. IRB のコア機能

IRB には、強力な開発ツールたる所以となるいくつかの機能(フィーチャー)が備わっています。

3.1 コマンドヒストリ (Command History)

IRB は入力したコマンドのヒストリをセーブします。キーボードの上下の矢印キーを使用してコマンドヒストリをナビゲートできるため、以前のコマンドを簡単に再利用またはモディファイ(変更)できます。

3.2 オートコンプリート (Autocompletion)

IRB はオートコンプリートをサポートしており、タイピングの時間を大幅にセーブし、利用可能なメソッドを発見するのに役立ちます。数文字タイプして Tab キーを押すだけです。

  • マッチする項目が1つだけの場合、IRB は自動的に単語をコンプリートします。
  • 複数の可能性がある場合、IRB はオプションのリストをディスプレイします。
irb(main):008:0> str. # 'str.' とタイプして Tab キーを押す
# IRB は文字列で利用可能なすべてのメソッドリストをディスプレイします。例:
# strip  split  slice  size  sort  ...

irb(main):009:0> str.up # 'str.up' とタイプして Tab キーを押す
irb(main):010:0> str.upcase # IRB が upcase をオートコンプリートします

3.3 オブジェクトのインスペクト (Inspecting Objects)

IRB を使用してオブジェクトをインスペクトし、それらのプロパティやメソッドを探索することができます。これは、使い慣れないコードやライブラリを扱う際に特に有用です。.methods を使用すると、オブジェクトがサポートしているすべてのオペレーションを確認できます。

irb(main):011:0> "hello".methods
=> [:unicode_normalize, :count, :partition, :bytesize, :upcase, :downcase, :capitalize, :split, :reverse, ...] # (ここでは大量の出力を省略しています)

これにより、文字列オブジェクト "hello" で利用可能なすべてのメソッドリストがディスプレイされます。このリストは非常に長く、現時点では見慣れないメソッドも多数含まれているでしょう。学習を進めるにつれて、このオブジェクトインスペクトのアプローチはますます実用的になります。

3.4 外部ファイルのロード (Loading Files)

load コマンドを使用して、Ruby ファイルを IRB にロードすることができます。これにより、ファイル内で定義されたコードを IRB 環境で実行し、インタラクトすることが可能になります。

my_script.rb という名前のファイルを作成し、以下のコンテンツを記述したと仮定します:

# my_script.rb のコンテンツ
puts "これは私のスクリプトです!"

def greet(name)
  puts "こんにちは、#{name}!"
end

IRB でのオペレーション:

irb(main):012:0> load "my_script.rb"
これは私のスクリプトです!
=> true

irb(main):013:0> greet("Alice")
こんにちは、Alice!
=> nil

ここで、load コマンドは my_script.rb 内のコードを実行し、テキストをプリントしました。ファイル内で定義された greet メソッドも、現在の IRB セッションで利用可能になっています。

3.5 IRB をカリキュレーターとして使用する

IRB は非常に便利なカリキュレーターでもあります。以下の例を試してみてください:

irb(main):014:0> 2 * 3 + 4
=> 10

irb(main):015:0> 10 / 3
=> 3  # 注意:2つの整数の除算では、結果は切り捨てられます

irb(main):016:0> 10.0 / 3
=> 3.3333333333333335 # 浮動小数点(フロート)が含まれる場合、結果もフロートになります

irb(main):017:0> 2 ** 8 # 2 の 8 乗
=> 256

irb(main):018:0> Math.sqrt(16) # 平方根を計算する
=> 4.0

注意:Math モジュールは、高度な数学関数(ファンクション)へのアクセスを提供します。

4. IRB と Ruby スクリプト実行の比較

IRB の使用と、ファイルからの Ruby スクリプト実行の違いを理解することは非常に重要です。

特性IRB (インタラクティブ環境)Ruby スクリプト (ファイル実行)
実行アプローチインタラクティブ、1行ずつ実行ファイル全体を一度に実行
フィードバック速度即座にレスポンススクリプト全体の実行後にアウトプットを確認
適用シナリオ迅速なテスト、構文の探索、コードのデバッグアプリケーションのビルド、複雑なロジックコードの記述
コードの保存セッションをクローズするとコードはロストする (手動でコピーしない限り)ファイルに永続的に保存される
エラーハンドリングエラーは即座にディスプレイされ、後続の入力に影響しないエラーによりスクリプトの実行がターミネートされる可能性がある

簡潔に言えば: IRB は実験や学習に非常に適していますが、完全なプログラムをクリエイトするには Ruby スクリプトの実行が不可欠なステップとなります。