Menu
Coddy logo textTech

O Método Enumerated

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: Blue

Observe 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 breakfast

O 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.

challenge icon

Desafio

Fácil

Escreva 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:

  1. Itere pelo array usando enumerated()
  2. Para cada elemento, crie uma string no formato "position. item" (usando numeração baseada em 1)
  3. 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 "".

Folha de consulta

O método enumerated() retorna uma sequência de tuplas contendo tanto o índice quanto o elemento de um array:

let colors = ["Red", "Green", "Blue"]

for (index, color) in colors.enumerated() {
    print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: Blue

Cada tupla é decomposta diretamente no loop usando a sintaxe (index, element), fornecendo acesso tanto à posição quanto ao valor.

Isso é útil para criar listas numeradas adicionando 1 ao índice baseado em zero:

let tasks = ["Wake up", "Exercise", "Eat breakfast"]

for (index, task) in tasks.enumerated() {
    print("Task \(index + 1): \(task)")
}
// Task 1: Wake up
// Task 2: Exercise
// Task 3: Eat breakfast

Experimente você mesmo

func formatWithPositions(items: [String]) -> String {
    // Escreva o código aqui
}
quiz iconTeste seus conhecimentos

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