gpt4 book ai didi

ruby - 在常量声明中使用当前类

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

class Cat
SUPERSTARS = [Cat.new('John'), Cat.new('Alfred')]

attr_accessor :name

def initialize(name)
@name = name
end
end

我得到一个错误

ArgumentError: wrong number of arguments(1 for 0)

因为initialize没有再定义

如果我把定义放在最后:

class Cat      
attr_accessor :name

def initialize(name)
@name = name
end

SUPERSTARS = [Cat.new('John'), Cat.new('Alfred')]
end

有效。

是否可以在文件顶部保留常量声明?

最佳答案

我想,你可以使用这个技巧:

class Cat
def self.const_missing(name)
[Cat.new('John'), Cat.new('Alfred')] if name == :SUPERSTARS
end

attr_accessor :name

def initialize(name)
@name = name
end
end

关于ruby - 在常量声明中使用当前类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42946306/

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