Sobes.tech
Junior — Middle

Que outros tipos de coleções, além de arrays, conjuntos e dicionários, existem no Swift?

sobes.tech IA

Resposta da IA

Em Swift, além de arrays (Array), conjuntos (Set) e dicionários (Dictionary), existem outros tipos de coleções que podem ser usados para armazenar e organizar dados:

  • Range — representa um intervalo de valores, por exemplo, 1...5.
  • OptionSet — estrutura para trabalhar com um conjunto de opções, implementadas através de máscaras de bits.
  • ContiguousArray — array otimizado para armazenar elementos numa região contínua de memória.
  • ArraySlice — fatia de um array que permite trabalhar com uma parte do array sem copiar.
  • UnsafeBufferPointer e UnsafeMutableBufferPointer — ponteiros de baixo nível para trabalhar com memória, que podem ser usados como coleções.

Além disso, pode criar suas próprias coleções implementando protocolos como Collection, Sequence e outros, o que permite criar estruturas com comportamento de coleções, por exemplo, fila (Queue), pilha (Stack) ou lista ligada (LinkedList).

Exemplo de criação de uma fila simples baseada em um array:

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