Menu
CoddyTech

Rangkuman: Daftar Kontak

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Ruby di Coddy. Pelajaran 11 dari 57.

challenge icon

Tantangan

Sedang

Lengkapi class Contact. name, email, dan phone dapat dibaca. Setter email= menyimpan alamat dalam huruf kecil dan memunculkan ArgumentError dengan invalid email: x jika alamat tidak memiliki @ atau tidak memiliki . setelah @. Setter phone= hanya menyimpan digit dan memunculkan ArgumentError dengan invalid phone: x jika digit yang tersisa kurang dari 7. initialize(name, email, phone) menggunakan kedua setter. Dua kontak dianggap sama dengan == jika email keduanya sama. to_s mengembalikan Ada (ada@mail.io, 5551234).

Kode yang disediakan membaca kontak dalam baris berformat name,email,phone. Kode ini mencetak added Ada (ada@mail.io, 5551234), duplicate ada@mail.io untuk kontak yang sama dengan kontak yang sudah ditambahkan, atau pesan error, lalu mencetak contacts: 2.

Tulis kodemu di contact.rb. main.rb berisi kode input/output yang disediakan dan tidak boleh diedit.

Coba sendiri

require_relative 'contact'

# Kode input/output yang disediakan: biarkan apa adanya
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}"

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Ruby online