Menu
CoddyTech

Ôn tập: Danh sách liên hệ

Thuộc phần Lập trình hướng đối tượng trong hành trình Ruby của Coddy. Bài học 11 trên 57.

challenge icon

Thử thách

Trung bình

Hoàn thiện lớp Contact. Bạn có thể đọc name, email và phone. Setter email= lưu địa chỉ ở dạng chữ thường và phát sinh ArgumentError với invalid email: x khi địa chỉ không có @ hoặc không có . sau @. Setter phone= chỉ giữ lại các chữ số và phát sinh ArgumentError với invalid phone: x khi còn ít hơn 7 chữ số. initialize(name, email, phone) dùng cả hai setter. Hai liên hệ bằng nhau theo == khi email của chúng giống nhau. to_s trả về Ada (ada@mail.io, 5551234).

Code được cung cấp đọc các liên hệ từ những dòng có dạng name,email,phone. Code in ra added Ada (ada@mail.io, 5551234), duplicate ada@mail.io nếu liên hệ trùng với một liên hệ đã thêm, hoặc thông báo lỗi, rồi cuối cùng in ra contacts: 2.

Đặt code của bạn trong contact.rb. main.rb chứa code đầu vào/đầu ra được cung cấp và bạn không thể chỉnh sửa tệp này.

Tự làm thử

require_relative 'contact'

# Đoạn code đầu vào/đầu ra có sẵn: giữ nguyê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}"

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Ruby online