Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Swift
Code

8 nouvelles façons de remanier votre code avec Swift 4

by
Length:ShortLanguages:

French (Français) translation by Othmane Laoulida (you can also view the original English article)

Optimizing Swift 4

Swift est l'une des langues qui a connu la croissance la plus rapide de l'histoire, en raison de son élégance, de sa simplicité et de sa "sécurité par le design".  En fait, le mantra officiel de Swift est de "rendre la programmation de choses simples facile, et de choses difficiles possibles".  Dans cet article, vous découvrirez comment utiliser au mieux Swift en remaniant votre code.

Bien qu'une grande partie de l'optimisation du code soit implicite et évidemment inhérente à la conception du langage, il existe certaines stratégies de refactoring qui peuvent rendre votre code plus lisible, plus fiable et plus performant.  Dans cet article, vous apprendrez huit façons de remanier votre code avec Swift 4.

Objectifs du cet article

Dans cet article, vous apprendrez comment mieux optimiser et remanier votre code avec Swift 4. Nous couvrirons ce qui suit :

  1. gestion élégante des clés en double dans les dictionnaires grâce au zip
  2. définition des valeurs par défaut des dictionnaires
  3. fusionner les dictionnaires en un seul
  4. filtrage des valeurs du dictionnaire de données directement dans un autre objet du dictionnaire
  5. utiliser Codable pour enregistrer des objets personnalisés dans JSON
  6. permutation des valeurs dans les tableaux mutables
  7. manipulation de littéraux sur plusieurs lignes
  8. trouver des éléments aléatoires dans une collection

1. Dupliquer les clés dans les dictionnaires

Tout d'abord, Swift 4 améliore encore les dictionnaires avec une façon élégante de gérer les clés en double à l'aide de la fonction générique zip.  zip fonctionne sur bien plus que des dictionnaires, et en fait il vous permettra de construire votre propre type de séquence à partir de deux collections sous-jacentes qui sont conformes à Sequence.

Par exemple, supposons que vous ayez un tableau avec les valeurs suivantes, en prenant note de deux éléments contenant la même clé :

En utilisant le zip, vous pouvez créer une séquence de paires uniques :

Les éléments uniquingKeysWith du code ci-dessus vous permettent de créer des valeurs uniques à l'aide d'un opérateur mathématique.  Dans ce cas, nous utilisons + pour incrémenter la valeur chaque fois qu'une entrée en double est trouvée.  Bien entendu, vous pouvez également décider d'utiliser votre propre logique d'incrémentation personnalisée.

2. Valeurs par défaut des dictionnaires

Une autre fonctionnalité puissante de Swift 4 est la possibilité de définir des valeurs par défaut pour les dictionnaires, en utilisant un nouvel indice ajouté.  Dans le code suivant, lorsque vous accédez à la valeur d'une clé dans le dictionnaire, la valeur retournée est une valeur optionnelle, qui retournera zéro si la clé n'existe pas :

Normalement, vous devriez gérer la possibilité de nil dans les valeurs optionnelles, mais Swift 4 le rend un peu plus pratique pour vous, grâce à un nouvel indice qui vous permet d'ajouter des paramètres par défaut, plutôt que de vous forcer à garder ou déballer les options.

Dans ce cas, comme nous n'avons pas d'entrée pour New York dans notre tableau initial, il retournera le paramètre par défaut de 0, vous pouvez aussi injecter une valeur dynamique par opposition à une valeur littérale statique si nécessaire, ce qui donne certainement une fonctionnalité d'indice beaucoup plus puissante.

3. Fusionner des dictionnaires

Swift 4 facilite également la fusion de deux dictionnaires en un seul grâce à l'utilisation de merge(_:uniquingKeysWith :).  Dans l'exemple suivant, nous fusionnons le deuxième dictionnaire dans le premier, et grâce à l'utilisation du nouveau paramètre appris uniquingKeysWith, nous pouvons nous assurer que les doublons seront traités s'ils surviennent :

En l'absence de cette fonction, vous devriez normalement parcourir manuellement toutes les valeurs d'un dictionnaire et implémenter une logique personnalisée en fusionnant deux dictionnaires en un seul.

4. Filtrage des valeurs de dictionnaire dans un autre dictionnaire

En plus de fusionner deux dictionnaires, vous pouvez également filtrer dynamiquement un dictionnaire avec les résultats renvoyés dans un autre dictionnaire du même type.  Dans cet extrait de code suivant, nous filtrons le dictionnaire des localisations par une valeur spécifique, retournée sous forme de dictionnaire :

Ainsi, au-delà du simple filtrage, vous pouvez également utiliser la fermeture du filtre pour fournir des filtres personnalisés qui aboutiront à un nouveau résultat de dictionnaire.

5. Enregistrer les objets personnalisés dans JSON

Si vous avez déjà sérialisé (et désérialisé) des données auparavant, cela peut être très compliqué de devoir sous-classer des classes avec NSObject, ainsi que d'implémenter NSCoding.  Avec Swift 4, vous pouvez sérialiser plus efficacement vos classes grâce à Codable. Ceci est particulièrement utile lorsque vous voulez persister en sérialisant un de vos objets personnalisés dans un objet JSON, soit pour passer à une API ou même pour persister localement en utilisant UserDefaults :

Comme vous pouvez le voir, en réglant votre classe ou structure sur Codable, vous pouvez facilement sérialiser vos données à JSON, persister les données quelque part, et désérialiser en arrière.

6. Echange de valeurs dans des tableaux mutables

En passant aux tableaux, une autre fonctionnalité bienvenue dans Swift 4 est la possibilité de permuter deux valeurs directement dans les tableaux mutables, en utilisant swapAt(_:_ : _ :).  Cela serait très utile pour les fonctions telles que les algorithmes de tri, et c'est extrêmement simple à utiliser :

Auparavant, vous auriez dû utiliser des variables temporaires pour permuter entre deux emplacements d'éléments, mais avec cette méthode, vous pouvez trier vos tableaux de façon plus concise.

7. manipuler des documents littéraux multilignes

Un autre ajout intéressant à Swift 4 est la possibilité de stocker des chaînes de caractères de plusieurs lignes dans vos valeurs, ce qui rend extrêmement facile l'affichage de votre contenu littéral pour être plus présentable.  En utilisant la notation """" pour ouvrir et fermer le bloc de texte, vous pouvez créer du contenu multiligne et même des variables dynamiques de référence, comme indiqué ci-dessous lorsque nous ajoutons dynamiquement une date.

8. Sélection d'éléments aléatoires dans une collection

La nouveauté de Swift 4.2 est la possibilité de sélectionner des éléments aléatoires dans une collection avec la fonction randomElement.  En fait, non seulement les tableaux, mais tout objet conforme au protocole de collecte peut faire usage de cette fonction astucieuse.  L'exemple suivant utilise notre tableau de localisation, et il imprimera une ville aléatoire à partir de ce tableau :

Conclusion

Dans cet article, vous avez appris quelques techniques utiles que Swift 4 apporte pour vous aider à créer un code plus compact, ciblé et optimisé. Dans sa quatrième itération, Swift a certainement fait des progrès en vous aidant à remanier votre code pour qu'il soit plus lisible et plus fiable.  Swift 4.x n'est pas encore terminé, et je vous encourage à suivre la page officielle d'évolution de Swift pour prendre note de toutes les nouvelles propositions en cours de discussion.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.