|| =运算符在Ruby中使用require时行为不正确

时间:2013-02-26 03:10:41

标签: ruby

我是Ruby的新手,抱歉这个Noobie问题

#file1.rb

a = 1



#file2.rb

require './file1'

a ||= 2

puts a # show 2, not 1 as expected

我无法弄明白为什么

2 个答案:

答案 0 :(得分:3)

file1中的

a是file1的本地。它在file2中不可见。行为是正确的。

您可以使用实例变量使变量在其他文件中可见。

#file1.rb

@a = 1


#file2.rb

require './file1'

@a ||= 2

puts @a # >> 1

答案 1 :(得分:1)

尝试使用@a(实例变量)。 a因为你有它是一个局部变量,不能以这种方式访问​​。