class Computer_create
public
def initialize(filename)
@@files = []
@filename = filename
end
public
def create(filename)
@@files << filename
puts "File: #{filename} has been created"
end
public
def list
return @@files
end
end
file_1 = Computer_create.new("FileTest")
file_1.create("FileTest")
Computer_create.list
我只想尝试创建一个简单的数据库,它可以创建文件,并将它们存储在一个数组中,然后将它们存储在哈希中。
但是每次我试用我的代码时它都会给我这个:
&#34; computer_create.rb:24:in <top (required)>': undefined method
list&#39; for Computer_create:Class(NoMethodError)&#34;
我想要做的是:通过FileTest
制作一个名为file_1
的文件
然后列出@@files
中的所有文件
但它似乎没有用。
答案 0 :(得分:0)
错误信息完全正确;该课程没有list
方法。
在您已创建的list
的实例上调用Computer_create
,例如,
file_1.list
换句话说,就是你如何调用其他实例方法file_1.create
。
您还以......不寻常的方式使用@@
。据我所知,这些变量是实例变量,只需要一个@
。
不相关,但在每个公共方法之前放置public
是嘈杂且不必要的。事实上,我只说过一次将private
放在私人方法的集合面前。