Özet - Kullanıcı Profili Doğrulayıcı
Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 65 / 66.
Görev
KolayBir kullanıcı profilini temsil eden üç girdi alacaksınız. İlk girdi bir kullanıcı adı, ikincisi bir yaş ve üçüncüsü bir e-posta adresidir. Profili aşağıdaki kurallara göre doğrulayın ve uygun mesajı yazdırın:
Doğrulama Kuralları:
- Kullanıcı adı en az 3 karakter uzunluğunda olmalıdır
- Yaş 13 ile 120 arasında (dahil) olmalıdır
- E-posta
@sembolünü içermelidir
Gereksinimler:
- Kullanıcı adı girdisini okuyun ve boşlukları temizleyin (trim)
- Yaş girdisini okuyun, boşlukları temizleyin ve
i32türüne dönüştürün - E-posta girdisini okuyun ve boşlukları temizleyin (trim)
- Kullanıcı adı uzunluğunun en az 3 karakter olup olmadığını kontrol edin
- Yaşın 13 ile 120 aralığında olup olmadığını kontrol edin (aralıklarla birlikte
matchkullanın) - E-postanın
@karakterini içerip içermediğini kontrol edin (.contains()metodunu kullanın) - Tüm doğrulamalar geçerse şunu yazdırın:
Valid profile - Kullanıcı adı çok kısaysa şunu yazdırın:
Invalid username - Yaş aralık dışındaysa şunu yazdırın:
Invalid age - E-posta
@içermiyorsa şunu yazdırın:Invalid email - Doğrulamaları sırasıyla kontrol edin: önce kullanıcı adı, sonra yaş, sonra e-posta
Girdi:
- İlk satır: Bir kullanıcı adı (örneğin,
alice123) - İkinci satır: Bir yaş (örneğin,
25) - Üçüncü satır: Bir e-posta adresi (örneğin,
alice@example.com)
Çıktı:
- Şunlardan biri:
Valid profile,Invalid username,Invalid ageveyaInvalid email
Kendin dene
use std::io;
fn main() {
// Kullanıcı adı girişini oku
let mut username = String::new();
io::stdin().read_line(&mut username).expect("Failed to read line");
let username = username.trim();
// Yaş girişini oku
let mut age_input = String::new();
io::stdin().read_line(&mut age_input).expect("Failed to read line");
let age: i32 = age_input.trim().parse().expect("Failed to parse age");
// E-posta girişini oku
let mut email = String::new();
io::stdin().read_line(&mut email).expect("Failed to read line");
let email = email.trim();
// TODO: Profili doğrulamak için kodunuzu aşağıya yazın
// Kullanıcı adı uzunluğunu, yaş aralığını ve e-posta formatını kontrol edin
// Doğrulama sonuçlarına göre uygun mesajı yazdırın
}Logic & Flow bölümündeki tüm dersler
1İleri Seviye Kontrol Akışı
'match' İfadesiBirden Çok Değeri EşleştirmeAralıkları Eşleştirme'if let' İfadesiİfade Olarak DöngülerÖzet - Basit Komut Ayrıştırıcı4Struct'lar ile Verileri Gruplama
Struct Nedir?Struct'lara Genel BakışStruct Alanlarına ErişmeMutable Struct'larFonksiyon Parametresi Olarak Struct'larTuple Struct'larÖzet - Bir Kitap Struct'ı Oluşturun7'Result' ile Hata Yönetimi
'Result' Nedir?'Result' ile 'match' Kullanımıis_ok() ve is_err()Kısayollar: unwrap ve expectSoru İşareti Operatörü '?'String'leri Sayılara DönüştürmeÖzet - Güvenli Bölme Fonksiyonu10Closures ve Anonim Fonksiyonlar
Closure Nedir?Basit Bir Closure TanımlamaParametreli Closure'larOrtamı YakalamakÖzet - Basit Toplayıcı Closure2Vektörlere Giriş
Vektör Nedir?Vektör Oluşturmapush ile Eleman EklemeVektör Elemanlarına ErişmeVektör Üzerinde YinelemeDeğiştirilebilir YinelemeEleman KaldırmaÖzet - Temel Skor Takipçisi5Hash Map'ler ile Anahtar-Değer Çiftleri
Hash Map Nedir?Bir Hash Map OluşturmaAnahtar-Değer Çiftleri EklemeDeğerlere ErişmeBir Hash Map Üzerinde GezinmeBir Değeri GüncellemeBir Çifti KaldırmaÖzet - Kelime Sayacı11Son Meydan Okumalar
Özet - Benzersiz ÖğelerÖzet - Kullanıcı Profili DoğrulayıcıÖzet - Not Özetleyici3Komut Satırı Yapılacaklar Listesi
Proje KurulumuGörev EklemeTüm Görevleri GörüntülemeGörev SilmeFinal Kodu6'Option' ile Yokluğu Yönetme
'Option' Nedir?'Option' ile 'match' Kullanımıis_some() ve is_none()Bir 'Option' Değerini Açmak (Unwrapping)expect MetoduVarsayılan Değer Sağlama: unwrap_orÖzet - Bir Eleman Bulma9String Dilimleri ve Daha Fazlası
String ve &strString Dilimleri OluşturmaFonksiyon Parametresi Olarak DilimlerDiğer DilimlerÖzet - İlk Kelimeyi Bulma