我想在 Ruby 中创建一个空数组作为类实例变量。但是,我目前的方法似乎不起作用。
这是我的代码:
class Something
@something = []
def dosomething
s = 5
@something << s
end
end
Run Code Online (Sandbox Code Playgroud)
当我调用该函数时,它给了我一个未定义的方法回溯。但是,如果我对类变量做类似的事情,即:
class Something
@@something = []
def dosomething
s = 5
@@something << s
end
end
Run Code Online (Sandbox Code Playgroud)
这完美地工作。
我知道我可以使用 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
Run Code Online (Sandbox Code Playgroud)
class 变量@@可用于整个类范围。所以他们在代码中工作,如果你想使用实例变量@,你需要像上面一样初始化它。实例变量与类的实例/对象共享
有关更多详细信息,请访问链接Ruby 初始化方法
| 归档时间: |
|
| 查看次数: |
8134 次 |
| 最近记录: |