Menu
Coddy logo textTech

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 uma parte dele. O Swift facilita a extração de um subconjunto de elementos usando fatiamento de array com operadores de intervalo.

Para obter um slice, você usa um intervalo dentro dos colchetes de subscrito. A abordagem mais comum utiliza 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 dá os elementos nos índices 1, 2 e 3 — mas não o índice 4. Isso é útil quando você sabe exatamente onde quer parar.

Se você 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 real, envolva-o com Array():

let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced)  // [1, 2, 3]
challenge icon

Desafio

Fácil

Escreva uma função getMiddleElements que recebe numbers, start e end e retorna uma fatia (slice) do array a partir do í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 regular.

Parâmetros:

  • numbers ([Int]): O array a ser fatiado
  • start (Int): O índice inicial (inclusivo)
  • end (Int): O índice final (exclusivo)

Retorno: Um array contendo 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 deve retornar [20, 30, 40].

Folha de consulta

O Swift permite extrair uma parte de um array usando o fatiamento de array (array slicing) com operadores de intervalo.

Use o operador de intervalo semiaberto (..<) para fatiar de um índice inicial até (mas não incluindo) um índice final:

let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice)  // [20, 30, 40]

Use o operador de intervalo fechado (...) para incluir o índice final:

let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice)  // ["b", "c", "d"]

O fatiamento de array retorna um ArraySlice. Para convertê-lo em um Array comum, envolva-o com Array():

let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced)  // [1, 2, 3]

Experimente você mesmo

func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
    // 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