Junior — Middle
Какви типове обекти се допускат като елементи-ключове в колекция от тип Set?
sobes.tech AI
Отговор от 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.