Les Ranges en Swift

Introduction aux Ranges

Les ranges permettent de définir des intervalles de valeurs en Swift. On trouve deux types principaux de structures de ranges : \n1. Range pour créer des ranges semi-ouverts. \n2. ClosedRange pour établir des ranges fermés.

Création de Ranges

\n### Ranges Semi-Ouverts\nLes instances de Range sont définies à l'aide de l'opérateur de range semi-ouvert ..<. Cela inclut toutes les valeurs d'un certain point de départ jusqu'à un point d'arrivée, sans inclure ce dernier. Voici comment déclarer un range semi-ouvert :\nswift\nlet newRange = lower..<upper\n\n\n### Ranges Fermés\nDe manière similaire, les instances de ClosedRange sont définies avec l'opérateur .... Ces ranges incluent toutes les valeurs jusqu'au bord supérieur, qui est compris. La syntaxe suivante montre comment créer un range fermé :\nswift\nlet newClosedRange = lower...upper\n

Utiliser les Ranges

Les ranges ont plusieurs applications courantes, notamment :\n- Pour itérer avec des boucles for-in.\n- Dans des instructions switch pour vérifier si une valeur est comprise dans un intervalle.\n- Pour sélectionner une portion d'un tableau.

Exemple de Boucle For-in

L'exemple suivant utilise une boucle for-in avec un range semi-ouvert puis un range fermé pour afficher des arbres emoji :\nswift\nfor n in 1..<4 {\n print(String(repeating: "🌲", count: n))\n}\nfor n in 1...4 {\n print(String(repeating: "🌳", count: n))\n} \n\nCe code produit la sortie suivante :\n🌲🌲🌲🌲🌲🌲🌳🌳🌳🌳🌳🌳🌳🌳🌳🌳

Exemple de Switch

Dans cet exemple, on utilise une instruction switch et un range fermé pour décider quel emoji afficher en fonction de la hauteur de l'arbre :\nswift\nlet treeHeight = 2\nswitch treeHeight {\ncase 0...30: \n print("🌱")\ndefault: \n print("🌳")\n} \n\nCela produira :\n🌱

Exemple de Tableau

Dans l'exemple suivant, on imprime une section d'un tableau d'arbres, en utilisant un range fermé pour sélectionner des indices d'éléments :\nswift\nlet trees = ["Pine", "Oak", "Ash", "Willow", "Olive"]\nprint(trees[2...4])\n\nLa sortie sera :\n["Ash", "Willow", "Olive"]