Sobes.tech
Junior — Middle

Jakie inne typy kolekcji, oprócz tablic, zbiorów i słowników, występują w Swift?

sobes.tech AI

Odpowiedź od AI

W Swift, oprócz tablic (Array), zbiorów (Set) i słowników (Dictionary), istnieją inne typy kolekcji, które można używać do przechowywania i organizowania danych:

  • Range — reprezentuje zakres wartości, na przykład, 1...5.
  • OptionSet — struktura do pracy z zestawem opcji, zaimplementowana za pomocą masek bitowych.
  • ContiguousArray — zoptymalizowana tablica do przechowywania elementów w ciągłym obszarze pamięci.
  • ArraySlice — wycinek tablicy, który pozwala pracować z jej częścią bez kopiowania.
  • UnsafeBufferPointer i UnsafeMutableBufferPointer — wskaźniki niskiego poziomu do pracy z pamięcią, mogą być używane jako kolekcje.

Ponadto, można tworzyć własne kolekcje, implementując protokoły takie jak Collection, Sequence i inne, co pozwala na tworzenie struktur z zachowaniem kolekcji, na przykład kolejki (Queue), stosu (Stack) lub listy powiązanej (LinkedList).

Przykład tworzenia prostej kolejki na bazie tablicy:

struct Queue<T> {
    private var elements: [T] = []

    mutating func enqueue(_ value: T) {
        elements.append(value)
    }

    mutating func dequeue() -> T? {
        guard !elements.isEmpty else { return nil }
        return elements.removeFirst()
    }
}