Görev Silme
Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 18 / 66.
Görev
KolayÜç girdi alacaksınız: birincisi, virgülle ayrılmış mevcut görevlerin listesi; ikincisi, kaldırılacak görev numarası (1 tabanlı indeksleme); ve üçüncüsü, kaldırma işleminden sonra eklenecek yeni bir görev. Tüm girdileri okuyun, görevlerden bir vektör oluşturun, belirtilen görevi kaldırın, yeni görevi ekleyin ve güncellenmiş görev listesini görüntüleyin.
Gereksinimler:
- Virgülle ayrılmış görev açıklamalarını içeren ilk girdiyi okuyun (örneğin,
Buy groceries,Call dentist,Finish homework) - Bireysel görevleri elde etmek için dizeyi virgüllere göre ayırın
- Değiştirilebilir (mutable) bir vektör oluşturun ve her görevi ona ekleyin
- İkinci girdiyi okuyun ve bir tam sayıya dönüştürün (1 tabanlı indeksleme kullanarak kaldırılacak görev numarası)
- 1 tabanlı indeksi 0 tabanlıya dönüştürün ve o indeksteki görevi kaldırmak için
.remove()kullanın - Eklenecek yeni bir görevi içeren üçüncü girdiyi okuyun
- Yeni görevi vektöre eklemek için
.push()kullanın - Toplam görev sayısını şu formatta yazdırın:
Total tasks: X - Her görevi ayrı bir satırda şu formatta yazdırın:
Task: [task description]
Girdi:
- İlk satır: Virgülle ayrılmış görev açıklamaları (örneğin,
Buy groceries,Call dentist,Finish homework) - İkinci satır: Kaldırılacak görev numarasını temsil eden bir tam sayı (1 tabanlı indeksleme)
- Üçüncü satır: Eklenecek yeni bir görev (örneğin,
Study for exam)
Çıktı:
- İlk satır:
Total tasks: X(burada X, kaldırma ve ekleme işlemlerinden sonraki toplam görev sayısıdır) - Sonraki satırlar: Her görev
Task: [task description]olarak yazdırılır
Kendin dene
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// Virgülle ayrılmış görevleri oku
let tasks_input = lines.next().unwrap().unwrap();
// Kaldırılacak görev numarasını oku (1 tabanlı indeksleme)
let task_to_remove = lines.next().unwrap().unwrap();
let task_number: usize = task_to_remove.trim().parse().unwrap();
// Eklenecek yeni görevi oku
let new_task = lines.next().unwrap().unwrap();
// TODO: Kodunuzu aşağıya yazın
// tasks_input'u virgüllere göre ayırın ve değiştirilebilir bir vektör oluşturun
// Belirtilen indeksteki görevi kaldırın (1 tabanlıyı 0 tabanlıya dönüştürün)
// Yeni görevi vektöre ekleyin
// Sonuçları yazdır
// Toplam görev sayısını şu formatta yazdır: Total tasks: X
// Her bir görevi şu formatta yazdır: Task: [task description]
}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