我需要知道包含的ruby模块是否可以访问类变量。让我们说:
require 'bar'
class Foo
@i_am_important
Bar.do_stuff
end
Module Bar
def Bar.do_stuff
@i_am_important.stuff...
end
end
有没有办法使上述工作?
编辑:改进的例子, edit2:解决了问题
我刚改变了我的方法:Bar成为了自己的一个类,并在初始化时获得了“i_am_important”。可能不是最好的解决方案,但最后工作。谢谢你的帮助。
答案 0 :(得分:0)
您可以在类中包含模块以获取
之类的访问权限 module MyModule
@@my_val = 4
end
class MyClass
include MyModule
value = @@my_val
end
答案 1 :(得分:0)
为什么要在类和模块的大门上使用变量?我认为有这样的方式:
module Bar
def do_stuff
puts im_am_important
end
end
class Foo
include Bar
def im_am_important
100
end
end
Foo.new.do_stuff # => 100
答案 2 :(得分:0)
怎么样:
#foo.rb
@var
module My_foo
var = @var
def My_foo.my_method(var)
puts(var)
end
end
#bar.rb
require 'foo'
class Bar
extend My_foo
@important_var = "bla"
My_foo.my_method(@important_var)
end
ruby bar.rb => BLA