Sobes.tech
Junior — Middle

Set türündeki koleksiyon içindeki öğelerin benzersizliği nasıl sağlanır?

sobes.tech yapay zeka

AI'dan gelen yanıt

iOS'ta, Set koleksiyonu, öğelerin benzersizliğini karma ve eşitlik karşılaştırması kullanarak sağlar.

Her öğe, Hashable protokolüne uymalıdır; bu, şu yöntemlerin uygulanmasını gerektirir:

  • hash(into:) yöntemi — öğenin karma kodunu hesaplamak için;
  • == operatörü — iki öğenin eşitliğini kontrol etmek için.

Bir öğeyi Set'e eklediğinizde, sistem onun karma değerini hesaplar ve aynı karma ve eşitliğe sahip bir öğe olup olmadığını kontrol eder. Eğer varsa, öğe eklenmez ve böylece benzersizlik sağlanır.

Örnek:

struct Person: Hashable {
    let id: Int
    let name: String
}

var people = Set<Person>()
people.insert(Person(id: 1, name: "Alice"))
people.insert(Person(id: 1, name: "Alice")) // eklenmez, çünkü zaten böyle bir öğe var

Bu şekilde, Set'teki benzersizlik, öğelerin karma ve karşılaştırmasıyla sağlanır.