當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Binding.irb用法及代碼示例


本文簡要介紹ruby語言中 Binding.irb 的用法。

用法

irb()

打開調用 binding.irb 的 IRB 會話,該會話允許交互式調試。您可以調用當前範圍內可用的任何方法或變量,並在需要時改變狀態。

給定一個名為 potato.rb 的 Ruby 文件,其中包含以下代碼:

class Potato
  def initialize
    @cooked = false
    binding.irb
    puts "Cooked potato: #{@cooked}"
  end
end

Potato.new

運行 ruby potato.rb 將打開一個調用 binding.irb 的 IRB 會話,您將看到以下內容:

$ ruby potato.rb

From: potato.rb @ line 4 :

    1: class Potato
    2:   def initialize
    3:     @cooked = false
 => 4:     binding.irb
    5:     puts "Cooked potato: #{@cooked}"
    6:   end
    7: end
    8:
    9: Potato.new

irb(#<Potato:0x00007feea1916670>):001:0>

您可以鍵入任何有效的 Ruby 代碼,它將在當前上下文中進行評估。這使您無需重複運行代碼即可進行調試:

irb(#<Potato:0x00007feea1916670>):001:0> @cooked
=> false
irb(#<Potato:0x00007feea1916670>):002:0> self.class
=> Potato
irb(#<Potato:0x00007feea1916670>):003:0> caller.first
=> ".../2.5.1/lib/ruby/2.5.0/irb/workspace.rb:85:in `eval'"
irb(#<Potato:0x00007feea1916670>):004:0> @cooked = true
=> true

您可以使用exit 命令退出 IRB 會話。請注意,退出將在 binding.irb 暫停的位置恢複執行,正如您在此示例中從打印到標準輸出的輸出中看到的那樣:

irb(#<Potato:0x00007feea1916670>):005:0> exit
Cooked potato: true

有關詳細信息,請參閱 IRB。

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Binding.irb。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。