gpt4 book ai didi

Ruby:从另一个类的类方法中的一个类访问类实例变量

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

我正在开发一个 ruby​​ 程序,遇到了以下问题。

我有两个类 AClass 和 BClass,如下所示:

class AClass
attr_accessor :avar
def initialize(input)
@avar = input
end
end

class BClass
def BClass.build(aclass)
bvalue = aclass.avar
....
end
end

当我运行时:

aclass = AClass.new           
puts aclass.avar
bclass = BClass.build(aclass)

前两行工作正常。 aclass 被初始化并且 avar 被输出到屏幕上,但是第三行产生了一个错误。我似乎 BClass 构建方法无法访问 AClass 实例变量。我需要做什么才能完成这项工作。我认为 attr_accessor 将使我能够访问 AClass 实例变量。预先感谢您的输入。

最佳答案

如果你想为 BClass 创建一个新类型的初始化器,你可以这样做:

class AClass
attr_accessor :avar

def initialize(input)
@avar = input
end
end

class BClass
attr_accessor :bvalue

def self.build(aclass)
bclass = self.new
bclass.bvalue = aclass.avar
bclass
end
end

aclass = AClass.new 'ruby'
bclass = BClass.build aclass

这将设置 bclass.bvalue = aclass.avar = 'ruby'。

关于Ruby:从另一个类的类方法中的一个类访问类实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5052980/

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