Salut, Khabrovites! Le mois de mai est terminé et nous continuons de lancer de nouveaux cours. Cet article est dédié au début du
cours "développeur iOS" . La formation commencera le 28 mai, et d'ici là, vous avez la possibilité d'en apprendre davantage sur le langage Swift et ses fonctionnalités. Ceci est le premier article de trois, où dans un format d'interview les avantages et les fonctionnalités de la langue Swift sont examinés, dans lesquels nous enseignons comment créer des applications iOS dans nos cours.

Qu'est-ce que Swift et à quoi sert-il?
Swift est un langage de programmation universel et multi-paradigmes développé par Apple pour développer des solutions pour iOS, macOS, watchOS, tvOS et même Linux.
- Lisibilité - Swift a une syntaxe très propre et simple, facile à écrire et à lire.
- Prise en charge facile - la sortie est beaucoup moins de code et de niveaux d'héritage, et l'ensemble du projet se transforme en un seul fichier rapide.
- Plateforme sécurisée - compilez et corrigez les bugs dès l'écriture de code.
- Haute vitesse - un compilateur LLVM incroyablement rapide et efficace convertit le code Swift en code natif pour tirer le meilleur parti des périphériques. La syntaxe elle-même et la bibliothèque standard sont également optimisées pour un travail rapide.
- Prise en charge des bibliothèques dynamiques .
- Open source .
Quelle est la différence entre la classe et la structure?
Il y a quatre différences principales entre la classe et la structure dans Swift. Les classes ont des fonctionnalités que les structures n'ont pas:
- Casting de type - vous permet de vérifier et d'interpréter les classes lors de l'exécution.
- Comptage de liens - vous permet d'utiliser plusieurs liens pour chaque instance de la classe.
- Héritage - permet à une classe d'hériter des caractéristiques d'une autre.
- Désinitialiseurs - Autorisez chaque instance d'une classe à libérer toutes les ressources qui lui sont affectées.
Lorsque les structures sont passées dans du code, elles sont toujours copiées sans comptage de références. Les instances de la structure sont toujours passées par valeur, et les instances de la classe sont toujours par référence.
Dans quels cas utiliser une classe et dans quelle - structure?
En tant que simple aide-mémoire: les structures doivent être utilisées lorsqu'une ou plusieurs des conditions suivantes sont remplies.
- Le but de la structure est d'encapsuler plusieurs valeurs de données relativement simples;
- On peut s'attendre à ce que les valeurs encapsulées soient copiées, non référencées;
- Les propriétés stockées dans la structure sont elles-mêmes des types de valeurs qui sont également copiées, non référencées;
- Une structure ne doit pas hériter des propriétés et du comportement d'un autre type existant.
Dans d'autres cas, utilisez des classes: définissez une classe, créez une instance à gérer et passez par référence.
Comment passer des variables sous forme de liens?
Une variable peut être passée comme référence à l'aide du
paramètre inout .
Inout signifie que la modification d'une variable locale modifiera également les paramètres transmis.
var value: String = “Apple” func changeString(newValue:inout String) { newValue = “Samsung” print(newValue)
Qu'est-ce qu'un module?
- Un module est une unité distincte dans la distribution du code;
- Une plate-forme ou une application créée et distribuée en tant qu'unité distincte et pouvant être importée par un autre module;
- Chaque objectif de construction - un package d'application ou un framework dans Xcode est considéré comme un module distinct.
Quelle est la différence de niveaux d'accès dans Swift?
Swift a cinq niveaux d'accès différents pour les entités dans le code:
- Accès ouvert - les classes avec accès ouvert peuvent être des sous-classes ou être remplacées par des sous-classes dans le module où elles sont définies, ou dans toute autre qui importe le module où elles sont définies;
- Accès public - les classes avec accès public peuvent être des sous-classes ou être redéfinies par des sous-classes uniquement dans le module où elles sont définies;
- Accès interne - les entités peuvent être utilisées dans n'importe quel fichier source du module de définition, mais pas dans le fichier source en dehors de ce module;
- Accès privé aux fichiers - l'utilisation des entités est limitée par son propre fichier source définissant;
- Accès privé - l'utilisation des entités est limitée par la déclaration ci-jointe et les extensions de cette déclaration, qui se trouvent dans le même fichier.
L'accès ouvert est le niveau le plus élevé et le moins restreint, et l'accès privé est le plus bas et, par conséquent, le plus limité. Par défaut, toutes les entités du code ont un niveau d'accès interne.
Qu'est-ce qu'une initialisation retardée?
L'initialisation retardée est la technique consistant à retarder la création d'un objet ou l'exécution d'un autre processus jusqu'à ce que ce processus devienne nécessaire. Le délai ne peut être utilisé qu'avec des classes et des structures. Cependant, il faut comprendre que la propriété
paresseuse n'est pas sûre, car elle n'est pas automatiquement initialisée.
Vous devez toujours déclarer la propriété
paresseuse en tant que variable à l'aide de
var . Les propriétés des constantes doivent toujours avoir une valeur avant la fin de l'initialisation, afin qu'elles ne puissent pas être retardées.
Qu'est-ce qu'un tuple?
Un tuple est un groupe de zéro ou plusieurs valeurs représentées comme une seule valeur. Ils sont couramment utilisés pour renvoyer plusieurs valeurs à partir d'une fonction d'appel. Swift a deux types de tuples.
Nom cortège let nameAndAge = (name:”Midhun”, age:7) Access the values like: nameAndAge.name
Cortège sans nomDans ce type de tuple, nous ne spécifions pas de noms pour les éléments.
let nameAndAge = (“Midhun”, 7) Access the values like: nameAndAge.0
Que sont les transferts?
À l'aide de l'énumération, un type commun pour un groupe de valeurs liées est déterminé et la possibilité de travailler en toute sécurité avec ces valeurs dans le code est fournie. Contrairement à C et Objective-C, dans Swift, les énumérations ne sont pas affectées par défaut aux nombres entiers lors de leur création.
Quelles sont les valeurs liées?
Les valeurs associées sont très similaires aux variables associées à l'un des cas de dénombrement.
enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) }
Nous déterminons le type de l'énumération du
code -
barres , qui peut prendre la valeur upc avec la valeur associée du type
(Int, Int, Int, Int) ou la valeur
qrCode avec la valeur associée du type
String .
Parfois, la possibilité de stocker des valeurs connexes d'autres types à côté des valeurs de cas peut être utile. Cela vous permet de stocker des informations utilisateur supplémentaires avec la valeur de casse et vous permet de modifier ces informations chaque fois que vous utilisez ce cas dans le code.
La fin de la première partie.
La deuxième partie.
Nous invitons tout le monde à participer à un
webinaire gratuit , où nous vous dirons ce que ce cours vous apprendra.