在irb中访问已加载源中的变量

时间:2010-09-25 12:19:59

标签: ruby irb

假设我有一个名为test1.rb的文件,其代码如下:

my_array = [1, 2, 3, 4 5]

然后我运行irb并获得一个irb提示并运行“require'test1'。此时我希望能够访问my_array。但是如果我尝试做类似的事情......

puts my_array

irb告诉我“my_array”未定义。有没有办法访问“my_array”

4 个答案:

答案 0 :(得分:8)

像这样:

def my_array
    [1, 2, 3, 4, 5]
end

答案 1 :(得分:2)

您还可以要求您的脚本并以其他几种方式访问​​该数据。无法访问局部变量,但可以在范围内访问这三种其他数据类型,类似于方法定义。

MY_ARRAY = [1, 2, 3, 4 5] #constant
@my_array = [1, 2, 3, 4 5] #instance variable
@@my_array = [1, 2, 3, 4 5] #class variable
def my_array # method definition
  [1, 2, 3, 4 5]
end

答案 2 :(得分:1)

不,没有。局部变量总是在它们定义的范围内是局部变量。这就是为什么它们被称为局部变量。毕竟。

答案 3 :(得分:1)

在irb:

  eval(File.read('myarray.rb'),binding)

或者你可以drop to irb