Fatiamento de Arrays - Parte 1
Parte da seção Fundamentos do Journey de Swift da Coddy. Lição 73 de 86.
Às vezes, você não precisa de um array inteiro, apenas de uma parte dele. O Swift facilita a extração de um subconjunto de elementos usando o fatiamento de arrays com operadores de intervalo.
Para obter uma fatia, você usa um intervalo dentro dos colchetes de subscrito. A abordagem mais comum usa o operador de intervalo semiaberto (..<), que inclui o índice inicial, mas exclui o índice final:
let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice) // [20, 30, 40]Aqui, 1..<4 nos fornece os elementos nos índices 1, 2 e 3, mas não o índice 4. Isso é útil quando você sabe exatamente onde deseja parar.
Se quiser incluir o índice final, use o operador de intervalo fechado (...):
let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice) // ["b", "c", "d"]Um detalhe importante: o resultado do fatiamento é um ArraySlice, não um Array comum. Se você precisar de um array verdadeiro, envolva-o com Array():
let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced) // [1, 2, 3]Desafio
FácilEscreva uma função getMiddleElements que receba numbers, start e end e retorne uma fatia do array, começando no índice inicial até (mas não incluindo) o índice final.
Use o operador de intervalo semiaberto (..<) para extrair a parte especificada do array e retorná-la como um array comum.
Parâmetros:
numbers([Int]): O array a ser fatiadostart(Int): O índice inicial (inclusivo)end(Int): O índice final (exclusivo)
Retorno: Um array contendo os elementos do índice inicial até (mas não incluindo) o índice final ([Int])
Exemplo: Se numbers for [10, 20, 30, 40, 50, 60], start for 1 e end for 4, a função deverá retornar [20, 30, 40].
Experimente você mesmo
func getMiddleElements(numbers: [Int], start: Int, end: 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 móduloAtribuição compostaRecapitulação - Matemática simplesOperadores de comparação7Entrada e Saída Básicas
Função printInterpolação de stringsEntrada com readlineConversão de tiposRecapitulação - Até 120Recapitulação - Verdadeiro ou falso10Funções
Declare uma funçãoParâmetros e argumentosValores de retornoRótulos de argumentosRevisão - função SigmaRevisão - função de validaçãoValores padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeradoIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de tipoNúmerosStringBooleanoConvenções de nomenclaturaRecapitulação - Inicializar variáveis5Operadores — Parte 2
Operadores lógicos — Parte 1Operadores lógicos — Parte 2Revisão — Lógica simplesOperadores lógicos — Parte 3Operador ternário8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo Dados de Entrada11FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz14Arrays Avançados
Fatiamento de Arrays - Parte 1Fatiamento de Arrays - Parte 2Operadores de SequênciaO Método Contains3Optionais
O que são OptionaisDesembrulhando com If LetGuard LetOperador de Coalescência de NilRecapitulação - Desembrulhamento Seguro6Tomada de Decisões
Instrução IfIf - ElseRecapitulação - Calculadora SimplesInstrução SwitchSwitch com Intervalos9Laços de Repetição
Laço For-InLaço WhileLaço Repeat-WhileBreakContinueRevisão - FatorialIntervalos em LaçosLaço AninhadoRevisão - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRevisão - Lista de ProdutosRevisão - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do ProgramaPratique por conta própria: Playground de Swift