Sobes.tech
Junior — Middle

Ar Set kolekcija gali turėti bet kokio tipo duomenų elementus ar yra apribojimai dėl tipo?

sobes.tech AI

Atsakymas iš AI

Swift kalboje, Set kolekcija gali turėti bet kokio tipo elementus, kurie atitinka Hashable protokolą. Tai reiškia, kad tipai turi gebėti apskaičiuoti žymės kodą, kad užtikrintų unikalumą elementų Set'e.

Leidžiami tipų pavyzdžiai:

  • Standartiniai tipai, tokie kaip Int, String, Double — jie jau atitinka Hashable.
  • Naudotojo sukurti struktūros ar klasės, jei jos įgyvendina Hashable protokolą.

Pavyzdys naudotojo sukurtoje struktūroje, tinkamoje Set:

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

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

Jei tipas neatitinka Hashable, jo naudoti Set'e negalima.