Bir sınıf için Ruby'nin kaç örnek olduğunu bilmesi ve listeleyebilmesi için herhangi bir yolu var mı? Ben istiyorum neBir sınıftan oluşturulan tüm nesneleri Ruby'de nasıl listeleyebilirim?
options1 = {
name: 'Building house',
priority: 2,
tasks: []
}
options2 = {
name: 'Getting a loan from the Bank',
priority: 3,
tasks: []
}
@project1 = Project.new(options1)
@project2 = Project.new(options2)
bir liste dönmek için Project.all
ve Project.count
gibi sınıf yöntemleri sahip olmaktır:
class Project
attr_accessor :name, :tasks
def initialize(options)
@name = options[:name]
@tasks = options[:tasks]
end
def self.all
# return listing of project objects
end
def self.count
# return a count of existing projects
end
end
Şimdi bu sınıfın proje nesneleri oluşturmak: Burada
örnek bir sınıftır ve mevcut projelerin sayısı.Bunu nasıl yaparım?
Çalışması için sınıfta 'ObjectSpace' içermesi gerekiyor mu? – onebree
@HunterStevens hayır, modülü sınıfımıza karıştırmıyoruz, sadece bir yöntem arıyoruz –
** UYARI **: Bu çözüm, kendini ayağından çekmeyi kolaylaştırabilir. Nesnelerinize bir referans tutmazsanız (örneğin, sonucu bir şeye atamadan "Project.new" yaparsanız), bir noktada çöp toplanacak ve "ObjectSpace.each_object" açık bir şekilde bunları bildirmeyi durduracaktır. Rohit89'un cevabı gibi '@@ instances = []' kullanarak, bu nesnelere bir referans vererek bu problemi çözer. – vmarquet