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

问题描述 投票:0回答:5

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

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

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

puts my_array

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

ruby irb
5个回答
9
投票

像这样:

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

3
投票

您还可以要求脚本并通过其他几种方式访问该数据。局部变量无法访问,但其他三种数据类型可以在作用域内访问,与方法定义类似。

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

1
投票

不,没有。局部变量始终是其定义范围内的局部变量。这就是为什么它们被称为“局部变量”。


1
投票

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

或者您可以
转到irb


0
投票

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

然后在加载并要求之后在 IRB 中调用它

@my_array

会工作

© www.soinside.com 2019 - 2024. All rights reserved.