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()
}
}