如何将数组从一个ruby脚本引用到另一个

时间:2011-11-27 19:16:05

标签: ruby

我们可以将一个数组从一个ruby脚本引用到另一个并访问数组元素吗?

例如:我的第一个rb文件

1.rb

$joe = "one"
$po = "two"
$so  = "three"
names = [ $joe, $po, $so ]

第二个rb文件

2.rb

require "1"
$trial = names[1]
puts $trial

但这不起作用。

3 个答案:

答案 0 :(得分:6)

你可以这样做(Ruby 1.9):

<强> 1.rb

module Whatever
    @names = ["one","two","three"]

    def self.names
        @names
    end
end

<强> 2.rb

require_relative "1"

Whatever.names.each {|n| puts n}

答案 1 :(得分:2)

您可以将names设置为全局变量,但如果这是一个小脚本我只推荐它。另外,Module是可行的方式,就像在@ Tempus的回答中一样。

示例:

1.rb

$joe = "one"
$po = "two"
$so  = "three"
$names = [ $joe, $po, $so ]

2.rb

require "1"
$trial = $names[1]
puts $trial

答案 2 :(得分:2)

names是一个局部变量。如果您想从外部访问它,您必须定义并访问它

  • 在一个模块中,
  • 使用$names
  • 作为全局变量
  • 作为实例变量,使用@names
  • 作为类变量,使用@@names
  • 作为常量,使用NAMES

如果是这样一个简单的脚本,全局变量或实例变量就足够了。