Projeye Genel Bakış
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 33 / 56.
Küçük bir alışkanlık takipçisi inşa edeceksiniz. Durum (state), bir alışkanlık adını haftanın tamamlanan günleri geçmişine eşleyen tek bir sözlükte (dictionary) tutulur:
var habits: [String: [Int]] = [
"read": [1, 3, 5], // Pzt, Çar, Cum günleri yapıldı
"workout": [2, 4] // Sal, Per günleri yapıldı
]Günler, Pzt...Paz için 1...7 tam sayılarıdır. Önümüzdeki dört ders boyunca özellikleri teker teker ekleyeceksiniz:
- Bir alışkanlık ekleyin ve yapıldı olarak işaretleyin
- Haftalık serileri hesaplayın
- Haftalık bir ızgara yazdırın
- İki haftayı karşılaştırın
Her ders bağımsızdır, sözlüğü her dosyanın başında yeniden tanımlayacaksınız. Durum (state) aynı yapıdadır, bu nedenle yazdığınız metotlar dersler arasında aktarılabilir.
Görev
BaşlangıçProjeyi başlatmak için veri kurulum kodunu yazın:
- Boş bir
habitssözlüğü ([String: [Int]]) başlatın - Alışkanlıkların sayısını yazdırın
- Sözlüğün boş olup olmadığını yazdırın
Beklenen çıktı şudur:
0
trueKopya kağıdı
Bir alışkanlık takipçisi, alışkanlık adlarını tamamlanan gün numaraları dizileriyle (Pzt–Paz için 1...7) eşleyen bir sözlük (dictionary) olarak modellenebilir:
var habits: [String: [Int]] = [
"read": [1, 3, 5], // Pzt, Çar, Cum günleri yapıldı
"workout": [2, 4] // Sal, Per günleri yapıldı
]Faydalı sözlük özellikleri:
habits.count // girdi sayısı
habits.isEmpty // girdi yoksa trueKendin dene
// TODO: boş bir [String: [Int]] tanımlayın, ardından count ve isEmpty değerlerini yazdırın
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Stringler Derinlemesine
Sayma ve İndekslerBüyük-Küçük Harf ve KırpmaStringlerde AramaBölme ve BirleştirmeAlt Stringleri DeğiştirmeÖzet - Kullanıcı Adı Kontrolü4Kümeler
Küme OluşturmaBirleşim ve KesişimFark ve Simetrik FarkAlt Küme ve Üst KümeÖzet - Etiket Filtresi7Proje - Alışkanlık Takibi
Projeye Genel BakışTamamlandı Olarak İşaretle10Proje - Quiz Motoru
Projeye Genel BakışSoruları Sorma2Aralıklar ve Adımlar
Kapalı ve Yarı AçıkStride (Adım)Aralık MetotlarıSwitch İçinde AralıklarÖzet - Takvim Izgarası5Yüksek Mertebeden Fonksiyonlar Bölüm 1
MapFilterReduceMap, filter, reduce zincirlemeÖzet - Kelime İstatistikleri