Slicing de Tableaux, Partie 2
Fait partie de la section Fondamentaux du Journey Swift de Coddy — leçon 74 sur 86.
Swift propose une syntaxe abrégée pratique pour extraire des segments (slicing) depuis le début ou jusqu'à la fin d'un tableau. Au lieu de spécifier explicitement 0 ou le dernier index, vous pouvez laisser un côté de la plage vide.
Pour extraire une partie depuis le début d'un tableau jusqu'à un index spécifique, omettez la valeur de départ :
let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3]
print(firstThree) // [10, 20, 30]De même, pour effectuer un découpage d'un index spécifique jusqu'à la fin, omettez la valeur de fin :
let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...]
print(fromIndex2) // [30, 40, 50]Vous pouvez également utiliser la version de l'intervalle fermé pour inclure un point de départ spécifique :
let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3]
print(upToIndex3) // ["a", "b", "c", "d"]Ces plages unilatérales rendent votre code plus propre lorsque vous avez besoin des premiers éléments ou de tout ce qui suit un certain point. N'oubliez pas d'envelopper le résultat dans Array() si vous avez besoin d'un tableau standard au lieu d'un ArraySlice.
Défi
FacileÉcrivez une fonction splitArray qui prend numbers et index et renvoie tous les éléments de l'index donné jusqu'à la fin du tableau.
Utilisez l'opérateur de plage unilatérale (...) pour découper à partir de l'index spécifié jusqu'à la fin, et renvoyez le résultat sous forme de tableau standard.
Paramètres :
numbers([Int]) : Le tableau à découperindex(Int) : L'index de départ (inclus)
Retourne : Un tableau contenant tous les éléments de l'index donné jusqu'à la fin du tableau ([Int])
Exemple : Si numbers est [5, 10, 15, 20, 25, 30] et index est 3, la fonction doit retourner [20, 25, 30].
Aide-mémoire
Swift propose une syntaxe abrégée pour découper des tableaux depuis le début ou jusqu'à la fin en laissant un côté de la plage vide.
Pour découper depuis le début jusqu'à un index spécifique, omettez la valeur de départ :
let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3] // [10, 20, 30]Pour découper depuis un index spécifique jusqu'à la fin, omettez la valeur de fin :
let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...] // [30, 40, 50]Utilisez la version de plage fermée pour inclure un index de fin spécifique :
let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3] // ["a", "b", "c", "d"]Les plages unilatérales renvoient un ArraySlice. Enveloppez le résultat dans Array() pour le convertir en un tableau classique :
let regularArray = Array(numbers[2...])Essayez vous-même
func splitArray(numbers: [Int], index: Int) -> [Int] {
// Écrivez le code ici
}
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
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur ModuloAffectation composéeRécapitulatif - Mathématiques simplesOpérateurs de comparaison7Entrées/Sorties de base
Fonction PrintInterpolation de chaînesSaisie ReadLineConversion de typesRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourÉtiquettes d'argumentRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs par défaut13Itération sur les séquences
Itérer sur les élémentsLa méthode d'énumérationItérer sur les chaînes P1Itérer sur les chaînes P22Variables
Let vs VarAnnotations de typeNombresStringsBooléensConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateur ternaire8Calculateur de partage de facture
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz14Tableaux Avancés
Slicing de Tableaux, Partie 1Slicing de Tableaux, Partie 2Opérateurs de SéquenceLa Méthode Contains3Les Optionnels
Comprendre les optionnelsDéballage avec If LetL'instruction Guard LetOpérateur de fusion nilRécapitulatif - Déballage sécurisé6Prise de décision
L'instruction IfIf - ElseRécapitulatif - Calculatrice simpleL'instruction SwitchSwitch avec des intervalles9Boucles
Boucle For-InBoucle WhileBoucle Repeat-WhileBreakContinueRécapitulatif - FactorielleIntervalles dans les bouclesBoucles imbriquéesRécapitulatif - Entrée dynamique