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.