【发布时间】:2020-09-25 04:57:12
【问题描述】:
今天,在我的代码中,如果文件存在,如果数组不包含特定类,我会尝试做一些事情,但测试不起作用。
def LoadPackagesDatabase
packagesFiles = Dir['Packages/*.rb']
packagesClass = []
packagesFiles.each do |file|
load file
filename = file.sub('.rb', '')
packagesClass.append(Object.const_get(filename.sub('Packages/','')).new)
end
if File.exist?("PackagesDatabase.rb")
$PackagesDatabase = Marshal.load(File.read("PackagesDatabase.rb"))
packagesClass.each do |package|
if !$PackagesDatabase.include?(package.class)
$PackagesDatabase.append(package)
end
end
File.delete("PackagesDatabase.rb")
packagesDatabaseFile = File.open("PackagesDatabase.rb",'w')
packagesDatabaseFile.write(Marshal.dump($PackagesDatabase))
packagesDatabaseFile.close
else
$PackagesDatabase = packagesClass
packagesDatabaseFile = File.open("PackagesDatabase.rb",'w')
packagesDatabaseFile.write(Marshal.dump(packagesClass))
packagesDatabaseFile.close
end
end
我不想测试数组是否包含相同的对象,但如果数组包含特定的类。
【问题讨论】:
-
澄清一下,如果你有
array = ['foo', 23, 42],那么array.contains_class?(Numeric)是真的但array.contains_class?(Time)是假的?