Sobes.tech
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()
    }
}