我们可以将一个数组从一个ruby脚本引用到另一个并访问数组元素吗?
例如:我的第一个rb文件
$joe = "one"
$po = "two"
$so = "three"
names = [ $joe, $po, $so ]
第二个rb文件
require "1"
$trial = names[1]
puts $trial
但这不起作用。
答案 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
。如果是这样一个简单的脚本,全局变量或实例变量就足够了。