O Método Enumerado
Parte da seção Fundamentos do Journey de Swift da Coddy. Lição 70 de 86.
Às vezes, ao iterar sobre um array, você precisa saber não apenas o elemento, mas também sua posição. Embora você possa rastrear manualmente o índice com uma variável de contador, o Swift oferece uma solução mais limpa: o método enumerated().
Quando você chama enumerated() em um array, ele retorna uma sequência de tuplas, onde cada tupla contém o índice e o elemento:
let colors = ["Red", "Green", "Blue"]
for (index, color) in colors.enumerated() {
print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: BlueObserve como decompomos cada tupla diretamente no loop usando (index, color). Isso nos dá acesso a ambos os valores sem nenhum código extra.
Isso é particularmente útil quando você precisa exibir listas numeradas ou realizar operações que dependem da posição de um elemento:
let tasks = ["Wake up", "Exercise", "Eat breakfast"]
for (index, task) in tasks.enumerated() {
print("Task \(index + 1): \(task)")
}
// Tarefa 1: Wake up
// Tarefa 2: Exercise
// Tarefa 3: Eat breakfastO método enumerated() mantém seu código limpo e legível em comparação com o gerenciamento manual de uma variável de contador separada.
Desafio
FácilEscreva uma função formatWithPositions que recebe items e retorna uma string formatada mostrando cada item com seu número de posição.
Use o método enumerated() para iterar pelo array e construir uma string onde cada item é prefixado com seu número de posição baseado em 1.
Lógica:
- Itere pelo array usando
enumerated() - Para cada elemento, crie uma string no formato
"position. item"(usando numeração baseada em 1) - Junte todas as strings formatadas com um caractere de nova linha (
\n)
Parâmetros:
items([String]): Um array de strings para formatar
Retorno: Uma única string com cada item em sua própria linha, prefixado com seu número de posição (String). Formato: "1. item1\n2. item2\n3. item3"
Exemplo: Se items for ["Apple", "Banana", "Cherry"], a função deve retornar:
"1. Apple\n2. Banana\n3. Cherry"Nota: Se o array estiver vazio, retorne uma string vazia "".
Experimente você mesmo
func formatWithPositions(items: [String]) -> String {
// 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 FizzBuzz3Optionais
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