2个不同的A类和B类。变量在类A中声明。我想在B中获取变量的值

时间:2015-11-27 08:58:24

标签: ruby class inheritance

class A
@i = 2
end

class B
puts @i
end

这些是不同文件a.rb和b.rb中的两个类。我想在B班打印@i。任何人都可以帮助我

2 个答案:

答案 0 :(得分:2)

我建议你在使用Ruby的黑魔法之前考虑传统方式。

class A
  @i = 2
  def self.i
    @i
  end
end

class B
  puts A.i  #=> 2
end

如果揭露A的成员真是不可接受,那么请选择Andrey Deineko的解决方案。

答案 1 :(得分:0)

b.rb

require_relative 'a'

class B
  puts A.instance_variable_get(:@i)
end

执行该文件,您将获得输出:

ruby b.rb
#=> 2