Tekrar - Kişi Listesi
Coddy'nin Ruby Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 11 / 57.
Görev
OrtaContact sınıfını tamamla. name, email ve phone okunabilir. email= setter'ı adresi küçük harflerle saklar ve @ içermediğinde veya @ sonrasında . bulunmadığında invalid email: x ile birlikte ArgumentError yükseltir. phone= setter'ı yalnızca rakamları tutar ve 7'den az rakam kaldığında invalid phone: x ile birlikte ArgumentError yükseltir. initialize(name, email, phone) her iki setter'ı da kullanır. İki kişinin e-posta adresleri eşitse == ile eşit kabul edilir. to_s, Ada (ada@mail.io, 5551234) döndürür.
Sağlanan kod, kişileri name,email,phone satırları olarak okur. added Ada (ada@mail.io, 5551234) yazdırır; daha önce eklenmiş bir kişiye eşit olan bir kişi için duplicate ada@mail.io yazdırır veya hata mesajını yazdırır ve son olarak contacts: 2 yazdırır.
Kodun contact.rb dosyasına yazılmalıdır. main.rb sağlanan giriş/çıkış kodunu içerir ve düzenlenemez.
Kendin dene
require_relative 'contact'
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input = []
while (line = gets)
input << line.chomp
end
contacts = []
input.each do |line|
name, email, phone = line.split(",")
begin
contact = Contact.new(name, email, phone)
if contacts.include?(contact)
puts "duplicate #{contact.email}"
else
contacts << contact
puts "added #{contact}"
end
rescue ArgumentError => e
puts e.message
end
end
puts "contacts: #{contacts.size}"
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Sınıflar ve Nesneler
Dosyalarla ÇalışmaSınıf TanımlamaÖrnek DeğişkenleriMetotlar ve selfto_s ve inspectÖzet - Kütüphane Kartı7Çok Biçimlilik ve Ördek Tiplemesi
Çok BiçimlilikÖrdek TiplemesiSoyut Metotlarcase ve SınıflarTekrar - Ödeme Yöntemleri2Erişimciler ve self
Okuyucular ve YazıcılarÖzel Setter'larMetotlarda selfKimlik ve EşitlikTekrar - Kişi Listesi5Kalıtım
Alt sınıflarMetotları geçersiz kılmasuper çağrısıis_a? ve üst sınıflarTekrar - Personel Maaşları8Özel Metotlar
Eşitlik ve hashOperatör Metotlarıİndeksleme ve EklemeÖzel KoleksiyonlarTekrar - Kesirler11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç Alma3Sınıf Metotları ve Değişkenleri
Sınıf MetotlarıSınıf Örnek DeğişkenleriSabitlerFabrika MetotlarıTekrar - Kupon KodlarıKendi başına pratik yap: Online Ruby derleyicisi