Menu
Coddy logo textTech

Wiederholung – Kontaktliste

Teil des Abschnitts Objektorientierte Programmierung der Ruby-Journey von Coddy. Lektion 11 von 57.

challenge icon

Aufgabe

Mittel

Vervollständige die Klasse Contact. name, email und phone können gelesen werden. Der Setter email= speichert die Adresse in Kleinbuchstaben und löst ArgumentError mit invalid email: x aus, wenn sie kein @ oder keinen . nach dem @ enthält. Der Setter phone= behält nur die Ziffern und löst ArgumentError mit invalid phone: x aus, wenn weniger als 7 Ziffern übrig bleiben. initialize(name, email, phone) verwendet beide Setter. Zwei Kontakte sind mit == gleich, wenn ihre E-Mail-Adressen gleich sind. to_s gibt Ada (ada@mail.io, 5551234) zurück.

Der bereitgestellte Code liest Kontakte als Zeilen im Format name,email,phone. Er gibt added Ada (ada@mail.io, 5551234), duplicate ada@mail.io für einen Kontakt aus, der mit einem bereits hinzugefügten Kontakt gleich ist, oder die Fehlermeldung. Abschließend gibt er contacts: 2 aus.

Dein Code gehört in contact.rb. main.rb enthält den bereitgestellten Eingabe-/Ausgabecode und darf nicht bearbeitet werden.

Probier es selbst

require_relative 'contact'

# Mitgelieferter Ein-/Ausgabe-Code: belasse ihn unverändert
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}"

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Ruby-Compiler