Temel Kişi Listesi
Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 66 / 68.
Görev
KolayYapıların, dilimlerin ve işlevlerin iletişim bilgilerini düzenlemek ve görüntülemek için nasıl birlikte çalıştığını gösteren bir kişi yönetim sistemi oluşturun. Bu meydan okuma, özel veri yapıları tanımlama, veri koleksiyonlarını yönetme ve bu verileri işlemek için işlevler uygulama becerinizi test edecektir.
İki girdi alacaksınız:
"name1:phone1:email1,name2:phone2:email2,name3:phone3:email3"biçiminde kişi bilgilerini içeren bir dize (ör."Alice Johnson:555-0123:alice@email.com,Bob Smith:555-0456:bob@email.com,Carol Davis:555-0789:carol@email.com")"name:phone:email"biçiminde eklenecek yeni kişiyi içeren bir dize (ör."David Wilson:555-0321:david@email.com")
Göreviniz:
- Üç dize alanına sahip bir
Contactstruct'ı tanımlayın:Name,PhoneveEmail - Bir
addContactstruct dilimi ve yeni birContactalan, ardından kişinin eklendiği yeni bir dilim döndürenContactadlı bir işlev oluşturun - Bir
displayContactsstruct dilimi alan ve her kişinin bilgilerini yazdıranContactadlı bir işlev oluşturun - Bireysel kişi kayıtlarını elde etmek için ilk girdiyi virgüllere göre ayırarak ayrıştırın
- Her kişi kaydı için ad, telefon ve e-postayı çıkarmak üzere iki nokta üst üste işaretlerine göre ayırın
- Ayrıştırılan verilerden
Contactstruct'ları oluşturun ve bunları bir dilimde saklayın - Yeni bir kişi oluşturmak için ikinci girdiyi iki nokta üst üste işaretlerine göre ayırarak ayrıştırın
- Uygulama başlığını görüntüleyin:
"=== CONTACT MANAGEMENT SYSTEM ===" displayContactsbaşlığını kullanarak başlangıçtaki kişileri"Initial contact list:"işlevinizle görüntüleyin- Eklenecek yeni kişiyi görüntüleyin:
"Adding new contact: [name] ([phone]) - [email]" - Yeni kişiyi dilime eklemek için
addContactişlevinizi kullanın displayContactsbaşlığını kullanarak güncellenmiş kişileri"Updated contact list:"işlevinizle görüntüleyin- Kişi istatistiklerini görüntüleyin:
"=== CONTACT STATISTICS ===""Total contacts: [number_of_contacts]""Contacts added this session: 1"
- Tamamlanma mesajını görüntüleyin:
"Contact management operations completed successfully"
displayContacts işlevi her kişiyi şu biçimde yazdırmalıdır: "[index]. [name] - Phone: [phone], Email: [email]"; burada index 1'den başlar.
Girdi dizelerini ayırmak için strings paketini, biçimlendirilmiş çıktı için fmt paketini kullanın. Bu meydan okuma, veri düzenleme için struct'ların, koleksiyonlar için dilimlerin ve kod organizasyonu için işlevlerin nasıl birleştirileceğini gösterir; bunlar Go programlama boyunca kullanılan temel kalıplardır.
Kendin dene
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
// TODO: Kişi (Contact) yapınızı burada tanımlayın
// TODO: addContact fonksiyonunu burada uygulayın
// TODO: displayContacts fonksiyonunu burada uygulayın
func main() {
// İsimlerdeki boşlukları düzgün işlemek için bufio.Scanner kullanarak girdiyi okuyun
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
contactsInput := scanner.Text()
scanner.Scan()
newContactInput := scanner.Text()
// TODO: Kodunuzu aşağıya yazın
// Kişi girdisini ayrıştırın ve Contact yapılarını oluşturun
// Erişmeden önce dilim (slice) parçalarının yeterli elemana sahip olup olmadığını kontrol etmeyi unutmayın
// Yeni kişi girdisini ayrıştırın
// Uygulama başlığını görüntüleyin
// Başlangıçtaki kişileri görüntüleyin
// Yeni kişiyi ekleyin
// Güncellenmiş kişileri görüntüleyin
// İstatistikleri görüntüleyin
// Tamamlanma mesajını görüntüleyin
}Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
`fallthrough` ile Switchİç İçe Döngülerden ÇıkmaBelirli Bir Döngüye Devam Etme`goto` İfadesiÖzet - İleri Seviye Döngü Kontrolü4Proje: Basit Görev Listesi
Proje KurulumuGörev Ekleme2Structlar ve Metotlar
Structlarda Metot TanımlamaValue Receiver'larPointer Receiver'larReceiver SeçimiMetotlar ve FonksiyonlarÖzet - Struct Davranışı5Derinlemesine Map'ler
Struct Map'leriMap Değeri Olarak Pointer'larNil Map KontrolüMap'leri KarşılaştırmaÖzet - Kelime Frekansı Sayacı3Arayüzler (Temeller)
Arayüz Nedir?Bir Arayüz TanımlamaBir Arayüzü UygulamaArayüz Tiplerini KullanmaBoş ArayüzTip OnaylamalarıTip SeçimiÖzet - Şekiller ve DavranışlarKendi başına pratik yap: Online Go derleyicisi