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
问问题
695 次
2 回答
2
与您在任何其他地方执行此操作的方式相同:@@default
.
我不确定p ..
应该做什么(Ruby 不是我的母语),但这有效
class Foo
@@default = "default"
class << self
puts "#{@@default}"
end
end
于 2010-10-19T21:01:06.967 回答
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
于 2010-10-20T16:42:06.950 回答