class Foo
@@default = "default"
p instance_variables
p class_variables
class << self
p instance_variables
p class_variables
# How do I access the @@default variable here?
end
end
答案 0 :(得分:2)
与在其他任何地方执行此操作的方式相同:@@default
。
我不确定p ..
应该做什么(Ruby不是我的母语),但这可行
class Foo
@@default = "default"
class << self
puts "#{@@default}"
end
end
答案 1 :(得分:1)
这个问题很有意思,因为它基本上要求“元类有没有办法引用它的”真正“类?
据我所知,答案是“不”,因为Ruby保留的所有“向上”祖先指针也指向元类,因此在其中一个中运行class_variables()
会告诉你它的类实例变量。因此,您必须按名称引用对象,或者只需在输入元类上下文之前建立句柄...
class Foo
@@default = "default"
@@me = self
p instance_variables
p class_variables
class << self
p instance_variables
p @@me.class_variables
end
end