Sobes.tech
Back to questions
Junior — Middle
68

Какие типы объектов допускается использовать в качестве элементов-ключей в коллекции типа Set?

Answer from AI

sobes.tech AI

В коллекции типа Set в iOS (например, NSSet или Swift Set) в качестве элементов-ключей можно использовать объекты, которые удовлетворяют следующим требованиям:

  • В Objective-C (NSSet): объекты должны поддерживать методы -hash и -isEqual: для корректного сравнения и хеширования.
  • В Swift (Set): элементы должны соответствовать протоколу Hashable, то есть иметь хеш-значение и возможность сравнения на равенство.

Это необходимо, чтобы коллекция могла эффективно хранить уникальные элементы и быстро выполнять операции поиска.

Пример в Swift:

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

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

Таким образом, любые объекты, реализующие Hashable (в Swift) или методы hash и isEqual: (в Objective-C), могут быть элементами Set.