Sobes.tech
Junior — Middle

Kādi objektu tipi ir atļauti kā atslēgas elementi Set tipa kolekcijā?

sobes.tech AI

Atbilde no AI

iOS tipa Set kolekcijā (piemēram, NSSet vai Swift Set) atslēgas elementi var būt objekti, kas atbilst šādiem prasībām:

  • Objective-C (NSSet): objektiem jāatbalsta -hash un -isEqual: metodes pareizi salīdzināšanai un hashēšanai.
  • Swift (Set): elementi jāatbilst Hashable protokolam, tas ir, tiem jābūt ar hash vērtību un jāspēj salīdzināt vienlīdzību.

Tas ir nepieciešams, lai kolekcija efektīvi glabātu unikālus elementus un ātri veiktu meklēšanas operācijas.

Swift piemērs:

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

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

Tādējādi jebkurš objekts, kas īsteno Hashable (Swift) vai satur hash un isEqual: metodes (Objective-C), var būt Set elements.