gpt4 book ai didi

ruby - 使用子类中的常量在父类中定义 attr_accessor

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:16 27 4
gpt4 key购买 nike

我有父类,还有一些子类

class Base
end
class ChildNameAge < Base
ATTRIBUTES = [:name, :age]
attr_accessor *ATTRIBUTES
end
class ChildHeightWidth < Base
ATTRIBUTES = [:height, :width]
attr_accessor *ATTRIBUTES
end

我如何将这个 attr_accessor 移动到父类,但仍然使用子类的 ATTRIBUTES 常量,这样我就不必为每个子类重复这个 attr_accessor *ATTRIBUTES子类。

最佳答案

您的问题存在根本性缺陷。您正在反转基于类的继承的依赖循环。

根据基于类的继承的定义, parent 不能知道他们 child 的任何信息。

attr_accessor 移动到 Base(父)类将意味着它只能访问 自身 中定义的值,而不能访问任何它的 children !

关于ruby - 使用子类中的常量在父类中定义 attr_accessor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56890294/

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