7

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

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

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

puts my_array

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

4

4 回答 4

8

像这样:

def my_array
    [1, 2, 3, 4, 5]
end
于 2010-09-25T12:51:21.857 回答
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
于 2015-11-08T19:36:23.583 回答
1

不,没有。局部变量在定义它们的范围内始终是局部的。毕竟,这就是它们被称为局部变量的原因。

于 2010-09-25T13:42:23.533 回答
1

在 irb 中:

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

或者你可以降到irb

于 2010-09-26T02:44:48.960 回答