Küme Oluşturma
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 18 / 56.
Bir Set, benzersiz değerlerden oluşan sırasız bir koleksiyondur. Her üye için aynı öğe türü, yinelenenlere izin verilmez, tahmin edilebilir bir yineleme sırası yoktur.
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (yinelenen "red" atılır)Set<String> tür belirteci literal formda zorunludur çünkü ["a", "b"] kendi başına bir Array olarak çıkarımlanacaktır.
Üç temel işlem: contains, insert ve remove. Son ikisi, değişikliğin anlamlı olup olmadığına dair bilgi döndürür.
colors.insert("yellow") // ekler
colors.insert("red") // zaten orada, etkisi yok
colors.contains("green") // true
colors.remove("blue") // "blue" döndürür veya eksikse nil döndürürBir diziden küme oluşturmak, tek adımda yinelenenleri kaldırır:
let unique = Set([1, 2, 2, 3, 3, 3])
// 3 öğe, kesin sıra garanti edilmezGörev
BaşlangıçTek bir satır girdi okuyun: virgülle ayrılmış kelimelerden oluşan bir liste (yinelenen kelimeler olabilir).
Üç satır yazdırın:
- Benzersiz kelimelerin sayısı (
Setkullanın) - Alfabetik olarak sıralanmış ve
,ile birleştirilmiş benzersiz kelimeler - Girdi
swiftkelimesini içerdiğindetrue, aksi takdirdefalse(containskullanın)
swift,ruby,go,swift,go,rust girdisi için çıktı şöyledir:
4
go,ruby,rust,swift
trueKopya kağıdı
Set – benzersiz değerlerin sıralanmamış koleksiyonu. Dizi değişmezi (array literal) sözdizimi kullanılırken tür belirleme (type annotation) gereklidir:
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (kopya silindi)Temel işlemler:
colors.insert("yellow") // öğe ekler
colors.contains("green") // true
colors.remove("blue") // "blue" döner veya eksikse nil dönerKopyaları temizlemek için bir diziden küme oluşturun:
let unique = Set([1, 2, 2, 3, 3, 3]) // 3 öğeKendin dene
let words = readLine()!.components(separatedBy: ",")
// TODO: Set ile tekilleştir, sayıyı yazdır, sıralanmış şekilde birleştir, "swift" içeriyor mu
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