Fark ve Simetrik Fark
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 20 / 56.
İki küme işlemi daha araç setini tamamlar.
subtracting, ilk kümenin ikinci kümede bulunmayan elemanlarını döndürür:
let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5]
a.subtracting(b) // {1, 2}symmetricDifference iki kümeden tam olarak birinde bulunan, asla her ikisinde birden bulunmayan öğeleri döndürür:
a.symmetricDifference(b) // {1, 2, 5}union ve intersection ile birlikte, bu dördü günlük hayatta karşılaşacağınız her küme cebiri sorusunu kapsar.
Küme üyeliği aynı zamanda bir filtre olarak da yararlıdır: bir değerin bir kümede olup olmadığını O(1) sürede sorgulayın:
let stopwords: Set = ["the", "a", "an"]
let words = ["the", "cat", "sat", "on", "a", "mat"]
let real = words.filter { !stopwords.contains($0) }
// ["cat", "sat", "on", "mat"]Görev
KolayHer biri virgülle ayrılmış dizelerden oluşan iki satırlık girdi okuyun. Bunları sırasıyla currentMembers ve renewedMembers olarak ele alın.
Her biri alfabetik olarak sıralanmış ve , ile birleştirilmiş (veya hiç yoksa boş) üç satır yazdırın:
Lapsed: <...>> current eksi renewedNew: <...>> renewed eksi currentStayed: <...>> ikisinin kesişimi
1. satırdaki alice,bob,cara ve 2. satırdaki bob,cara,dan girdisi için çıktı şöyledir:
Lapsed: alice
New: dan
Stayed: bob,caraKopya kağıdı
subtracting, birinci kümede olup ikinci kümede olmayan elemanları döndürür:
let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5]
a.subtracting(b) // {1, 2}symmetricDifference, iki kümeden tam olarak birinde bulunan elemanları döndürür:
a.symmetricDifference(b) // {1, 2, 5}contains ile bir kümeyi O(1) filtresi olarak kullanın:
let stopwords: Set = ["the", "a", "an"]
let words = ["the", "cat", "sat", "on", "a", "mat"]
let real = words.filter { !stopwords.contains($0) }
// ["cat", "sat", "on", "mat"]Kendin dene
let current = Set(readLine()!.components(separatedBy: ","))
let renewed = Set(readLine()!.components(separatedBy: ","))
// YAPILACAK: Süresi Dolanları (current - renewed), Yenileri (renewed - current) ve Devam Edenleri (intersection) 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