Ruby-实例变量作为类变量
我有一门课:Ruby-实例变量作为类变量,ruby,class,instance-variables,Ruby,Class,Instance Variables,我有一门课: class Foo def self.test @test end def foo @test = 1 bar end private def bar @test = 2 end end object = Foo.new.foo Foo.test # => nil 我将其输出到输出“2”的唯一方法是将@test设置为类变量。使用实例变量并能够用Foo.test显示它还有其他方法吗?我不太清楚您想要实现什
class Foo
def self.test
@test
end
def foo
@test = 1
bar
end
private
def bar
@test = 2
end
end
object = Foo.new.foo
Foo.test
# => nil
我将其输出到输出“2”的唯一方法是将
@test
设置为类变量。使用实例变量并能够用Foo.test
显示它还有其他方法吗?我不太清楚您想要实现什么,以及为什么。下面是一个带有“类实例变量”的示例。它可能是您正在寻找的:
class Foo
class << self
attr_accessor :test
end
attr_accessor :test
def foo
@test = 1
bar
end
private
def bar
Foo.test = 2
end
end
foo = Foo.new
foo.foo
p foo.test
#=> 1
p Foo.test
#=> 2
class-Foo
第一类
p Foo.test
#=> 2
Foo.test
这是一个类方法,无法访问实例变量。您真正的目标是什么?您正在使用不同的对象,因此它们显然无法访问相同的实例变量。您在同一时间与我一起发表了评论lol。这就是问题的目的,如何避免使用@但得到相同的结果。不过我的版本有点不同。