Conversão de Fatias de Volta para Arrays
Materialize uma fatia em um array independente.
Conversão de Fatias de Volta para Arrays é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.
As fatias não são arrays
Um ArraySlice é um tipo distinto de Array. Muitas APIs esperam um Array concreto, portanto frequentemente é necessário fazer uma conversão.
let original = [1, 2, 3, 4, 5]
let slice = original[1..<4]
print(type(of: slice))Array(slice)
Envolva uma fatia no inicializador Array(...) para criar um array novo e independente, com elementos copiados e índices baseados em zero.
let original = [10, 20, 30, 40, 50]
let slice = original[2..<5]
let array = Array(slice)
print(array)
print(type(of: array))Os índices são reiniciados em zero
Após a conversão, o novo array é reindexado a partir de 0, ao contrário da fatia, que mantinha os índices do array pai.
let original = [1, 2, 3, 4, 5]
let slice = original[3..<5]
let copy = Array(slice)
print("slice start:", slice.startIndex)
print("array start:", copy.startIndex)A conversão copia o armazenamento
A conversão força uma cópia. O novo array deixa de compartilhar o armazenamento com o array pai, portanto alterá-lo não afeta o original.
let original = [1, 2, 3, 4]
var copy = Array(original[1..<3])
copy[0] = 999
print("original:", original)
print("copy:", copy)Retornando arrays de funções
Quando uma função retorna parte de um array, converta a fatia para que quem a chama receba um Array normal.
func firstThree(of nums: [Int]) -> [Int] {
return Array(nums.prefix(3))
}
print(firstThree(of: [9, 8, 7, 6, 5]))Passando para parâmetros de array
Se o parâmetro de uma API tiver o tipo [Int], você precisará converter a fatia antes de passá-la.
func total(_ values: [Int]) -> Int {
return values.reduce(0, +)
}
let data = [1, 2, 3, 4, 5]
let result = total(Array(data[1..<4]))
print(result)Quando a conversão é desnecessária
Se a sua função aceitar uma Sequence ou Collection genérica, poderá passar a fatia diretamente, sem convertê-la.
func describe<S: Sequence>(_ s: S) where S.Element == Int {
print(Array(s))
}
let arr = [2, 4, 6, 8]
describe(arr[1..<3])Compromisso de memória
As fatias evitam cópias e mantêm o armazenamento do vetor de origem ativo. Se mantiver uma fatia small de um vetor huge por muito tempo, converta-a em um vetor para que o big bloco de memória possa ser liberado.
let huge = Array(1...1000)
let keep = Array(huge[0..<3]) // small independent copy
print(keep)Convertendo para um conjunto
Também poderá fornecer uma fatia a outros inicializadores de coleções, como Set.
let arr = [1, 2, 2, 3, 3, 3]
let uniqueTail = Set(arr[2..<6])
print(uniqueTail.sorted())Ida e volta
Fatiar, converter e fatiar novamente é perfeitamente válido. Cada conversão é explícita e previsível.
let arr = [10, 20, 30, 40, 50]
let a = Array(arr[1..<4])
let b = Array(a[0..<2])
print(a)
print(b)Boa prática
Continue trabalhando com fatias durante o cálculo e converta para Array apenas no limite em que armazena ou retorna o resultado.
let arr = [3, 1, 4, 1, 5, 9, 2]
let top3 = Array(arr.sorted(by: >)[0..<3])
print(top3)Verificação rápida
Teste a conversão de fatias.
Recapitulação
Use Array(slice) para transformar um ArraySlice em um vetor independente com índices começando em zero e armazenamento copiado. Converta nos limites da API; mantenha as fatias durante o cálculo para evitar cópias adicionais.
let s = [1, 2, 3, 4, 5][2..<5]
let a = Array(s)
print(a, a.startIndex)Perguntas Frequentes
A aula “Conversão de Fatias de Volta para Arrays” é grátis?
Sim — o texto completo de “Conversão de Fatias de Volta para Arrays” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.
O que vou aprender em “Conversão de Fatias de Volta para Arrays”?
Materialize uma fatia em um array independente. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Swift Academy?
Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Conversão de Fatias de Volta para Arrays”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Swift Academy?
Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criação de Fatias com Intervalos
- Semântica de Índices de ArraySlice
- Conversão de Fatias de Volta para Arrays
- prefix, suffix e dropFirst