مراجعة - قائمة جهات الاتصال
جزء من قسم البرمجة كائنية التوجه في رحلة Ruby على Coddy. الدرس 11 من 57.
التحدي
متوسطأكمل الصنف Contact. يمكن قراءة name وemail وphone. يخزّن المُعيّن email= العنوان بأحرف صغيرة ويطلق ArgumentError مع invalid email: x عندما لا يحتوي على @ أو لا يحتوي على . بعد @. يحتفظ المُعيّن phone= بالأرقام فقط ويطلق ArgumentError مع invalid phone: x عندما يتبقى أقل من 7 أرقام. يستخدم initialize(name, email, phone) المُعيّنين كليهما. يكون جهتا اتصال متساويين باستخدام == عندما تكون عناوين بريدهما الإلكتروني متساوية. تُرجع to_s القيمة Ada (ada@mail.io, 5551234).
يقرأ الكود المُزوَّد جهات الاتصال على هيئة أسطر بالصيغة name,email,phone. ويطبع added Ada (ada@mail.io, 5551234)، أو duplicate ada@mail.io لجهة اتصال تساوي جهة مضافة مسبقًا، أو رسالة الخطأ، ثم يطبع أخيرًا contacts: 2.
ضع الكود الخاص بك في contact.rb. يحتوي main.rb على كود الإدخال/الإخراج المُزوَّد ولا يمكن تعديله.
جرّب بنفسك
require_relative 'contact'
# كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
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}"
جميع دروس البرمجة كائنية التوجه
1الفئات والكائنات
العمل مع الملفاتتعريف الفئاتمتغيرات النسخةالأساليب و selfto_s و inspectمراجعة - بطاقة المكتبة7تعدد الأشكال والكتابة بأسلوب البطة
تعدد الأشكالالكتابة بأسلوب البطةالأساليب المجردةالحالات والفئاتمراجعة - طرق الدفع2المُوَصِّلات و self
القارئات والكاتباتمُعيِّنات مخصّصةself في الأساليبالهوية والمساواةمراجعة - قائمة جهات الاتصال3أساليب ومتغيرات الأصناف
أساليب الأصنافمتغيرات كائنات الأصنافالثوابتأساليب الإنشاءمراجعة - رموز القسائمتدرّب بنفسك: مترجم Ruby عبر الإنترنت