Aralık Metotları
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 9 / 56.
Aralıklar gerçek Collection'lardır, bu yüzden dizilerde kullandığınız aynı araç kutusuyla birlikte gelirler.
contains, count, first ve last özelliklerinin hepsi doğrudan çalışır:
let r = 1...10
print(r.contains(5)) // true
print(r.count) // 10
print(r.first!, r.last!) // 1 10Kullandığınız çoğu dizi yöntemi burada da çalışır. filter bir dizi döndürür çünkü bir aralığı filtrelemenin sonucu bir aralık değildir:
let evens = (1...10).filter { $0 % 2 == 0 }
print(evens) // [2, 4, 6, 8, 10]reduce için de durum aynı: aralıklar buna sahiptir ve hızlı toplamlar ile çarpımlar için ona başvuracaksınız.
Görev
Kolayİki tam sayı okuyun (iki satır): n ve target. 1...n kapalı aralığını veri kümeniz olarak kabul edin.
Üç satır yazdırın:
targetaralıkta olduğundatrue, aksi takdirdefalse- Aralıktaki her değerin çarpımı (
n!: faktöriyel).reducekullanın. - Aralıktaki
3'ün katı olan değerleri,ile birleştirerek yazdırın (hiçbiri uymuyorsa boş bir satır).filterkullanın.
5 / 3 girişi için çıktı şöyledir:
true
120
3Kopya kağıdı
Aralıklar Collection protokolüne uyar ve yaygın koleksiyon metotlarını destekler:
let r = 1...10
r.contains(5) // true
r.count // 10
r.first! // 1
r.last! // 10Bir aralık üzerinde filter işlemi bir dizi döndürür:
let evens = (1...10).filter { $0 % 2 == 0 }
// [2, 4, 6, 8, 10]reduce doğrudan aralıklar üzerinde çalışır:
let product = (1...5).reduce(1) { $0 * $1 } // 120
let sum = (1...5).reduce(0, +) // 15Kendin dene
let n = Int(readLine()!)!
let target = Int(readLine()!)!
let r = 1...n
// YAPILACAK: contains(target), reduce ile çarpım, filter ile 3'ün katları
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