更新日:
【Ruby】 irbの使い方とは?
irbとは「Interactive Ruby」の略で、対話形式でプログラムを実行できるようになるコマンドです。 このコマンドを入力するとターミナルでrubyのコードを動かすことができるようになります。 ちょっとしたコードの動作確認を行いたいときに使います。
1
2
$ irb
irb(main):001:0>
rubyのプログラムを実行するにはまずはrubyファイルを作成して、そのファイルにコードを書き、ターミナルでrubyコマンドを実行してコードを動かす流れが一般的です。
上の例のようにたった1行のコードを実行するのにファイルを作成してターミナルでそれを実行するのは大変めんどくさいですよね。
そんなときirbコマンドでirbモードにするとターミナル上で直接rubyのコードを実行できます。
irbの使い方
この章では、irbの使い方について1つ1つ丁寧に解説します。
実際にirbコマンドを使ってみよう
それでは実際にirbコマンドを実行してirbモードにしてみましょう。
1
2
$ irb
irb(main):001:0>
すると$マークの代わりに「irb(main):001:0>」という文字が表示されます。
この状態がirbモードです。
実際にputs "hello world"と入力してみます。
このようにすぐに実行結果が出力されるのが確認できます。
これなら気軽にコードを実行することができますね!
irbモードを終了するには「exit」または「quit」と入力します。
数行に渡るコードを実行してみよう
irbモードでは1行のコードだけでなく、複数行に渡るコードも実行することができます。
試しに簡単なif文を実行してみます。
if分のようにコードが続いている場合は上の例のように「0」が「1」になります。
コードが続いている中に複数行のコードが入った場合はその部分が「2」と表示されます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
irb(main):001:0> num1 = 1
=> 1
irb(main):002:0> num2 = 2
=> 2
irb(main):003:0> if num1 == 1
irb(main):004:1> if num2 == 2
irb(main):005:2> puts "num1は1でnum2は2です"
irb(main):006:2> else
irb(main):007:2* puts "num1は1です"
irb(main):008:2> end
irb(main):009:1> else
irb(main):010:1* puts "1か2以外です"
irb(main):011:1> end
num1は1でnum2は2です
=> nil
Rubyの用語やコードの読み方が知りたいという方は、こちらの書籍も参考になります。
間違って実行してしまった時
間違えてenterキーで実行してしまった時、
コードが実行されず、「exit」と入力しても何も起こらない時があります。
そんな時は閉じるべき文字を打ち忘れている可能性があります。
上の例は文字列オブジェクトを定義する「"」の閉じる部分が入力されずに実行されてしまっています。
つまりコンピュータはまだコードが続いていると認識します。
なので「exit」を押しても文字列の中の文章と扱われて何も起こらないわけです。
このような時は「irb(main):002:0"」と言ったように最後に閉じるべき文字が表示されます。
この場合は「"」がまだ入力されていないので「"」が表示されています。
また間違えて入力してしまったコードは1回enterが押されてしまうと修正はできません。
そんな時は一度「exit」で抜けてから再度実行してみましょう。
また「controlキー + c」でも途中のコードをキャンセルすることができます。
外部で定義したコードを読み込んでみよう
irbモードでは外部で定義したメソッドやクラスもそのファイルを読み込むことで使えるようになります。
例えばディスクトップに下記のファイルを作成し、コードを記述します。
classCar.rb
1
2
3
4
5
class Car
def initialize(name)
@name = name
end
end
このCarクラスをirbモード内で使用したい場合はこのファイルがあるディレクトリをカレントディレクトリにした状態でirbコマンドを実行します。
irbモードになったら下記のコマンドでファイルを読み込みます。
1
load("classCar.rb")
これで外部で定義したCarクラスがirbモードの中で使用できるようになります。
1
2
3
4
irb(main):001:0> load("classCar.rb")
=> true
irb(main):002:0> car = Car.new("BMW")
=> #<Car:0x00007f809da88020 @name="BMW">
簡単にクラスやメソッドの動きを確認することができるので覚えておくと便利です。
サブirbモード
irbモードの中でirbコマンドを実行するとサブirbモードになります。
サブirbモード内では通常のirbモードで定義した変数はスコープ外になるので呼び出すことができなくなります。
すでにirbモード内に定義した環境を残したまま、新たな環境でコードを実行したいときなどに便利です。
1
2
3
4
5
6
7
8
irb(main):001:0> num = 1
=> 1
irb(main):002:0> irb #サブirbモードへ
irb#1(main):001:0> puts num
Traceback (most recent call last):
1: from (irb#1):1
NameError (undefined local variable or method `num' for main:Object)
# 定義されていない変数と表示される
サブirbはいくつでも起動させることが可能です。
irbモードは手軽にrubyのコードを実行できるので、初期の学習に非常に役立ちます。
プログラミングの学習はインプットだけでなくアウトプットが非常に大事になってきます。
新しくハッシュを学んだら実際にirbモードでハッシュオブジェクトを定義したり、そこからキーを指定してバリューを取り出してみたりと新たに学んだ知識は実際irbモードで実行して動きを確かめると身につき方も変わってくるので、ぜひirbモードを使ってみましょう。
この記事のまとめ
- irbとは、対話形式でプログラムを実行することが出来るコマンドのこと
- ターミナルに
irb
と入力して実行すると、irbが起動する - 間違えたら、
exit
かcontrolキー + c
を実行しよう