gpt4 book ai didi

ruby - 在 Ruby 中,我可以从实例方法中访问类实例变量吗?

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

以下代码通过类方法在类 C 中设置了一个类变量,并表明它可以通过实例方法访问:

class C
def self.set_a
@@a = 1
end

def get_a
@@a
end
end

C.set_a
C.new.get_a #=> 1

如果我将类方法 set_a 中的 @@a 替换为 @a,那么它会创建一个类实例变量而不是类变量,我仍然可以从实例方法 get_a 中访问它吗?

最佳答案

我认为您不能直接引用它。类是一个对象,实例变量是对象私有(private)/内部的。您可以使用 instance_variable_get 访问它在类上或将其包装在 getter 方法中。

在 Rails 中,您可以使用 class_variable macro这有助于设置和访问类级变量。

关于ruby - 在 Ruby 中,我可以从实例方法中访问类实例变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53527932/

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