How can I use methods attr-reader of the Module calss in Ruby?
本问题已经有最佳答案,请猛点这里访问。
我已经看到了在Ruby程序中使用的attr_reader、attr writer和attr_访问器,就好像它们是对象方法(或混合到objest中的内核方法)。然而,attr-reader、attr-writer和attr-accessor是名为module的类的一部分,我不理解它们如何在所有类中使用,是什么使它们可用?
谢谢,鲁文
工作原理如下:
1 2 3 4 5 6 7 8 9 10 | module Attr attr_accessor :my_variable end class MyClass @my_variable ="hi" def initialize @my_variable ="ho" end end |
您在类中使用
1 2 3 4 5 | MyClass.include Attr c = MyClass.new c.my_variable #=>"ho" c.my_variable ="huh?" #=>"huh?" c.my_variable #=>"huh?" |
号
您可以使用
1 2 3 4 5 | MyClass.extend Attr #=> MyClass MyClass.my_variable #=>"hi" MyClass.my_variable ="nuts" #=>"nuts" MyClass.my_variable #=>"nuts" c.my_variable #=>"huh?" |
如您所见,实例变量
更常见的是,您会在类定义中看到
1 2 3 4 5 6 7 8 | class MyClass include Attr extend Attr @my_variable ="hi" def initialize @my_variable ="ho" end end |
。