🙌

Rubyのbinding.irbについて

2023/06/07に公開

binding.irbとは?

binding irbとは、Rubyをコマンドプロンプト上で対話的に実行できるirbコマンドを、プログラムの処理中に実行できるコマンドです。

binding.irbを使う意義

binding.irbは、ソースコード上に記述できるため、例えばいくつかの処理の間に設置して、途中の数値を確認したり、変数の値を変更して表示することができます。

記述例

x = 20
y = 40
z = 100

sum = x + y + z
sum = sum ** 4
sum = sum - 200
sum = sum / 4
p sum

上記のような処理があるとします。
そのまま処理すると、163839950が出力されました。
この処理の、sum ** 4の直後のsumの数値を知りたいときは、

x = 20
y = 40
z = 100

sum = x + y + z
sum = sum ** 4
binding.irb
sum = sum - 200
sum = sum / 4
p sum

このように記述します。その後、コマンドを実行すると、

    2: y = 40
    3: z = 100
    4: 
    5: sum = x + y + z
    6: sum = sum ** 4
 => 7: binding.irb
    8: sum = sum - 200
    9: sum = sum / 4
    10: p sum

コンソール上では、このような表記になります。
コマンドプロンプトがirbの表示になっていますので、ここでp sumsumを表示してみると、

irb(main):001:0> p sum
655360000
=> 655360000 

この時点でのsum65536000ということですね。
この後は、exitを入力するとその後の処理が実行されます。
または、新たにsumにRubyの処理を追加して、その後の処理を実行することもできます。

  • sumから700を引いてみた
irb(main):002:0> sum = sum - 700
=> 655359300
irb(main):003:0> exit
163839775

最後の数値が変化している。

いつ使えばいいの?

主に、デバッグ用として使われます。
長いコードの途中に、binding.irbを挟むことで、その時点での変数の値が確認できますね。

私はまだこれを使うほど長いコードを書いたことがありませんが、今後使うことになると思うので、しっかり使いこなせるようにしておきたいです。

Discussion