Sobes.tech
Junior — Middle

Може ли колекцията Set да съдържа елементи от всякакъв тип данни или има ограничения по тип?

sobes.tech AI

Отговор от AI

В Swift колекцията Set може да съдържа елементи от всякакъв тип, който съответства на протокола Hashable. Това означава, че типовете трябва да могат да изчислят хеш код, за да осигурят уникалността на елементите в Set.

Примери за допустими типове:

  • Стандартни типове като Int, String, Double — те вече съответстват на Hashable.
  • Потребителски структури или класове, ако реализират протокола Hashable.

Пример за потребителска структура, подходяща за Set:

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

var peopleSet: Set<Person> = []
peopleSet.insert(Person(id: 1, name: "Иван"))

Ако типът не съответства на Hashable, не може да бъде използван в Set.