Sobes.tech
Junior — Middle

Může kolekce Set obsahovat prvky jakéhokoliv datového typu, nebo jsou zde omezení typu?

sobes.tech AI

Odpověď od AI

V Swiftu může kolekce Set obsahovat prvky jakéhokoliv typu, který splňuje protokol Hashable. To znamená, že typy musí být schopny vypočítat hash kód, aby zajistily jedinečnost prvků v Set.

Příklady povolených typů:

  • Standardní typy, jako jsou Int, String, Double — již splňují Hashable.
  • Vlastní struktury nebo třídy, pokud implementují protokol Hashable.

Příklad vlastní struktury vhodné pro Set:

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

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

Pokud typ nesplňuje Hashable, nelze jej použít v Set.