Sobes.tech
Junior — Middle

Vai Set kolekcija var saturēt jebkāda veida datu elementus vai ir ierobežojumi pēc veida?

sobes.tech AI

Atbilde no AI

Swift valodā kolekcija Set var saturēt jebkura veida elementus, kas atbilst protokolam Hashable. Tas nozīmē, ka tipi ir jāspēj aprēķināt hash kodu, lai nodrošinātu elementu unikālitāti Set.

Atļautie tipu piemēri:

  • Standarta tipi, piemēram, Int, String, Double — tie jau atbilst Hashable.
  • Lietotāja definētas struktūras vai klases, ja tās īsteno Hashable protokolu.

Piemērs lietotāja definētai struktūrai, kas ir piemērota Set:

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

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

Ja tips neatbilst Hashable, to nevar izmantot Set.