运行Ruby脚本后与之交互

运行Ruby脚本后与之交互,ruby,irb,Ruby,Irb,我习惯于在IPython中执行以下操作: run foo 它将加载文件foo.py。然后,文件中定义的每个变量都将在作用域中。现在我正在学习Ruby。我有一个hello.rb文件,它只有以下内容: puts "Hello" x = 1 当我用 load './hello.rb' 终端在屏幕上打印“Hello”。但是我不能玩变量x 我该怎么做 谢谢。在Ruby中,您无法访问所需文件中定义的局部变量。在irb文件中,局部变量超出范围 要解决这个问题,您可以做以下几件事: 定义一个常数: #h

我习惯于在IPython中执行以下操作:

run foo
它将加载文件foo.py。然后,文件中定义的每个变量都将在作用域中。现在我正在学习Ruby。我有一个hello.rb文件,它只有以下内容:

puts "Hello"
x = 1
当我用

load './hello.rb'
终端在屏幕上打印“Hello”。但是我不能玩变量x

我该怎么做


谢谢。

在Ruby中,您无法访问所需文件中定义的局部变量。在irb文件中,局部变量超出范围

要解决这个问题,您可以做以下几件事:

  • 定义一个常数:

    #hello.rb
    module SharedConst
    X = 1
    end
    puts "Hello"
    
    #in irb
    puts SharedConst::X
    # => 1
    
  • 定义实例变量

    #hello.rb
    puts "Hello"
    @x = 1
    
    #in irb
    @x
    # => 1
    
或使用类似的工具,可以在任何范围内打开REPL以访问局部变量。