gpt4 book ai didi

ruby - 如何在 Ruby 中初始化类数组

转载 作者:太空宇宙 更新时间:2023-11-03 17:21:28 25 4
gpt4 key购买 nike

我想在 Ruby 中创建一个空数组作为类实例变量。但是,我目前的方法似乎不起作用。

这是我的代码:

class Something 
@something = []
def dosomething
s = 5
@something << s
end
end

当我调用该函数时,它会给我一个未定义的方法回溯。但是,如果我对类变量做类似的事情,即:

class Something
@@something = []
def dosomething
s = 5
@@something << s
end
end

这非常有效。

我知道我可以使用 initialize 方法为 @something 创建一个空列表,但是还有另一种不使用 initialize 方法的方法吗?为什么这对类变量有效?

编辑:修复错字

最佳答案

您需要像下面的代码一样使用 initialize 作为构造函数,是否有任何理由不使用 initialize/constructor。并且请将类定义 Class Something 中的拼写错误修复为 class Something 在类里面没有驼峰式大小写或首字母大写

class Something 
def initialize
@something = Array.new
end
def dosomething
s = 5
@something << s
end
end

类变量 @@ 可用于整个类范围。所以他们在代码中工作,如果你想使用实例变量@你需要像上面那样初始化它。实例变量与类的实例/对象共享

有关更多详细信息,请访问链接 Ruby initialize method

关于ruby - 如何在 Ruby 中初始化类数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36996170/

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