Menu
Coddy logo textTech

Slicing de Tableaux, Partie 1

Fait partie de la section Fondamentaux du Journey Swift de Coddy. Leçon 73 sur 86.

Parfois, vous n’avez pas besoin d’un tableau entier, mais seulement d’une partie de celui-ci. Swift facilite l’extraction d’un sous-ensemble d’éléments à l’aide du découpage de tableau avec des opérateurs de plage.

Pour obtenir une tranche, vous utilisez une plage à l’intérieur des crochets d’indice. L’approche la plus courante utilise l’opérateur de plage semi-ouverte (..<), qui inclut l’indice de début, mais exclut l’indice de fin :

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

Ici, 1..<4 nous donne les éléments aux indices 1, 2 et 3, mais pas l’indice 4. C’est utile lorsque tu sais exactement où tu veux t’arrêter.

Si vous souhaitez inclure l’index end, utilisez l’opérateur d’intervalle fermé (...) :

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

Un détail important : le résultat du découpage est un ArraySlice, et non un Array ordinaire. Si tu as besoin d’un véritable tableau, enveloppe-le avec Array() :

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

Défi

Facile
Écrivez une fonction getMiddleElements qui prend numbers, start et end, et renvoie une tranche du tableau depuis l’index start jusqu’à (sans l’inclure) l’index end.

Utilisez l’opérateur d’intervalle semi-ouvert (..<) pour extraire la portion spécifiée du tableau et la renvoyer sous forme de tableau ordinaire.

Paramètres :

  • numbers ([Int]) : le tableau à découper
  • start (Int) : l’index de départ (inclus)
  • end (Int) : l’index de fin (exclus)

Renvoie : un tableau contenant les éléments depuis l’index start jusqu’à (sans l’inclure) l’index end ([Int])

Exemple : si numbers vaut [10, 20, 30, 40, 50, 60], que start vaut 1 et que end vaut 4, la fonction doit renvoyer [20, 30, 40].

Essayez vous-même

func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
    // Écrivez le code ici
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Playground Swift