Junior — Middle
Milyen más kollekciótípusok vannak a tömbökön, halmazokon és szótárakon kívül Swiftben?
sobes.tech MI
Válasz az MI-től
Swift-ben a tömbökön (Array), halmazokon (Set) és szótárakon (Dictionary) kívül más kollekciótípusok is léteznek, amelyeket adatok tárolására és szervezésére lehet használni:
- Range — értéktartományt képvisel, például,
1...5. - OptionSet — egy opciók halmazával való munkára szolgáló szerkezet, bitmaszkokon keresztül megvalósítva.
- ContiguousArray — optimalizált tömb, amely elemeket egy folyamatos memória területen tárol.
- ArraySlice — egy tömb szelete, amely lehetővé teszi a tömb egy részével való munkát másolás nélkül.
- UnsafeBufferPointer és UnsafeMutableBufferPointer — alacsony szintű mutatók a memória kezeléséhez, kollekcióként is használhatók.
Ezen kívül saját kollekciókat is létrehozhatsz, implementálva például a Collection, Sequence protokollokat, így olyan struktúrákat hozhatsz létre, mint például sor (Queue), verem (Stack) vagy láncolt lista (LinkedList).
Egyszerű sor (Queue) példája tömb alapú megvalósítással:
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()
}
}