当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。