Fatiamento de Arrays Parte 2
Parte da seção Fundamentos do Journey de Swift da Coddy — lição 74 de 86.
O Swift fornece uma sintaxe abreviada conveniente para fatiar desde o início ou até o fim de um array. Em vez de especificar 0 ou o último índice explicitamente, você pode deixar um dos lados do intervalo vazio.
Para fatiar do início de um array até um índice específico, omita o valor inicial:
let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3]
print(firstThree) // [10, 20, 30]Da mesma forma, para fatiar de um índice específico até o fim, omita o valor final:
let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...]
print(fromIndex2) // [30, 40, 50]Você também pode usar a versão de intervalo fechado para incluir um ponto de partida específico:
let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3]
print(upToIndex3) // ["a", "b", "c", "d"]Esses intervalos unilaterais tornam seu código mais limpo quando você precisa dos primeiros elementos ou de tudo após um certo ponto. Lembre-se de envolver o resultado em Array() se você precisar de um array comum em vez de um ArraySlice.
Desafio
FácilEscreva uma função splitArray que recebe numbers e index e retorna todos os elementos a partir do índice fornecido até o final do array.
Use o operador de intervalo unilateral (...) para fatiar do índice especificado até o final, e retorne o resultado como um array comum.
Parâmetros:
numbers([Int]): O array a ser fatiadoindex(Int): O índice inicial (inclusivo)
Retorno: Um array contendo todos os elementos do índice fornecido até o final do array ([Int])
Exemplo: Se numbers for [5, 10, 15, 20, 25, 30] e index for 3, a função deve retornar [20, 25, 30].
Folha de consulta
Swift fornece uma sintaxe abreviada para fatiar arrays do início ou até o fim, deixando um lado do intervalo vazio.
Para fatiar do início até um índice específico, omita o valor inicial:
let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3] // [10, 20, 30]Para fatiar de um índice específico até o fim, omita o valor final:
let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...] // [30, 40, 50]Use a versão de intervalo fechado para incluir um índice final específico:
let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3] // ["a", "b", "c", "d"]Intervalos unilaterais retornam um ArraySlice. Envolva o resultado em Array() para convertê-lo em um array comum:
let regularArray = Array(numbers[2...])Experimente você mesmo
func splitArray(numbers: [Int], index: Int) -> [Int] {
// Escreva o código aqui
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtribuição CompostaRecapitulação - Matemática SimplesOperadores de Comparação7IO Básico
Função PrintInterpolação de StringsEntrada ReadLineConversão de TiposRecapitulação - Até 120Recapitulação - Verdadeiro ou Falso10Funções
Declarar uma FunçãoParâmetros e ArgumentosValores de RetornoRótulos de ArgumentosRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores Padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeratedIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de TipoNúmerosStringBooleanosConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operador Ternário8Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada11FizzBuzz com um Diferencial
Visão Geral do JogoA Função FizzBuzz14Arrays Avançados
Fatiamento de Arrays Parte 1Fatiamento de Arrays Parte 2Operadores de SequênciaO Método Contains3Opcionais
O que são OpcionaisDesembrulhando com If LetGuard LetOperador de Coalescência NulaRecapitulação - Desembrulho Seguro6Tomada de Decisão
Estrutura IfIf - ElseRecapitulação - Calculadora SimplesEstrutura SwitchSwitch com Intervalos9Loops
Loop For-InLoop WhileLoop Repeat-WhileBreakContinueRecapitulação - FatorialIntervalos em LoopsLoop AninhadoRecapitulação - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRecapitulação - Lista de ProdutosRecapitulação - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa