gpt4 book ai didi

ruby - 如何在单例类上定义类变量

转载 作者:数据小太阳 更新时间:2023-10-29 08:36:40 24 4
gpt4 key购买 nike

我想在单例类上定义一个类变量。我检查了这个程序的结果:

class C
class << self
@@val = 100
end
end

C.singleton_class.class_variables #=> [], I expect [:@@val]
C.class_variables #=> [:@@val]

我期望 @@val 的范围成为单例类,不是吗?

你能告诉我如何使用 class << self 在单例类上定义类变量吗? , 这个程序不正确的原因是什么?

最佳答案

这是因为当Ruby解析器遇到一个类变量时,当前类是根据词法作用域来解析的。

比照。 http://blog.honeybadger.io/lexical-scoping-and-ruby-class-variables/

关于ruby - 如何在单例类上定义类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33921185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com