Sobes.tech
Junior — Middle

Czy kolekcja Set może zawierać elementy dowolnego typu danych, czy istnieją ograniczenia co do typu?

sobes.tech AI

Odpowiedź od AI

W Swift, kolekcja Set może zawierać elementy dowolnego typu, który spełnia protokół Hashable. Oznacza to, że typy muszą być w stanie obliczyć kod hash, aby zapewnić unikalność elementów w Set.

Przykłady dozwolonych typów:

  • Typy standardowe, takie jak Int, String, Double — już spełniają Hashable.
  • Struktury lub klasy niestandardowe, jeśli implementują protokół Hashable.

Przykład struktury niestandardowej odpowiedniej dla Set:

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

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

Jeśli typ nie spełnia Hashable, nie można go używać w Set.