Junior — Middle
Podes explicar o que é uma AsyncSequence e como ela é usada em Swift?
sobes.tech IA
Resposta da IA
AsyncSequence em Swift é um protocolo que permite trabalhar com sequências assíncronas de valores. É semelhante a uma sequência normal, mas destinado a obter elementos de forma assíncrona, por exemplo, de rede ou outras fontes onde os dados chegam com atraso.
O uso de AsyncSequence permite escrever código que percorre os elementos usando a construção for await, o que torna o fluxo de dados assíncrono fácil de ler e processar.
Exemplo de uso de AsyncSequence:
struct AsyncCounter: AsyncSequence {
typealias Element = Int
let limit: Int
struct AsyncIterator: AsyncIteratorProtocol {
var current = 0
let limit: Int
mutating func next() async -> Int? {
guard current < limit else { return nil }
current += 1
// Simulação de atraso assíncrono
try? await Task.sleep(nanoseconds: 500_000_000) // 0.5 segundos
return current
}
}
func makeAsyncIterator() -> AsyncIterator {
return AsyncIterator(current: 0, limit: limit)
}
}
// Uso:
Task {
for await number in AsyncCounter(limit: 5) {
print(number)
}
}
Este método é útil para trabalhar com fluxos de dados que chegam com atraso, como websockets, temporizadores ou APIs assíncronas.