Sobes.tech
Junior — Middle

Môže kolekcia Set obsahovať prvky akéhokoľvek typu údajov alebo existujú obmedzenia podľa typu?

sobes.tech AI

Odpoveď od AI

V Swift, kolekcia Set môže obsahovať prvky akéhokoľvek typu, ktorý zodpovedá protokolu Hashable. To znamená, že typy musia byť schopné vypočítať hash kód na zabezpečenie jedinečnosti prvkov v Set.

Príklady povolených typov:

  • Štandardné typy, ako sú Int, String, Double — už zodpovedajú Hashable.
  • Vlastné štruktúry alebo triedy, ak implementujú protokol Hashable.

Príklad vlastnej štruktúry vhodnej pre Set:

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

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

Ak typ nevyhovuje Hashable, nemôže byť použitý v Set.