סיכום – רשימת אנשי קשר
חלק מהיחידה תכנות מונחה עצמים במסלול ה-Ruby של Coddy. שיעור 11 מתוך 57.
אתגר
בינוניהשלם את המחלקה Contact. אפשר לקרוא את name, את email ואת phone. ה-setter email= שומר את הכתובת באותיות קטנות ומעלה ArgumentError עם invalid email: x כאשר אין בה @ או שאין . אחרי ה-@. ה-setter phone= משאיר רק את הספרות ומעלה ArgumentError עם invalid phone: x כאשר נותרות פחות מ-7 ספרות. initialize(name, email, phone) משתמש בשני ה-setters. שני אנשי קשר נחשבים שווים באמצעות == כאשר כתובות האימייל שלהם זהות. 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}"
כל השיעורים ביחידה תכנות מונחה עצמים
3מתודות ומשתנים של מחלקה
מתודות של מחלקהמשתני מופע של מחלקהקבועיםמתודות ליצירת מופעיםסיכום – קודי קופוןתרגלו בעצמכם: קומפיילר Ruby אונליין