Les variables dans Swift sont un concept de langage fondamental et puissant. Bien qu’ils paraissent simples, ils incluent de nombreuses fonctionnalités et il existe également des pièges courants que vous rencontrerez en programmant Swift..
Dans ce court tutoriel vidéo de mon cours sur la création d'applications iOS avec Swift 3, je vais expliquer les variables, les constantes et les options, en mettant l'accent sur le système de types Swift..
Swift possède des fonctionnalités très puissantes et pratiques pour les variables. Commençons par un tout nouveau terrain de jeu.
Comme vous pouvez le constater, il existe déjà une affectation de variable à l'écran, créée par le modèle. Il a la var
mot-clé devant, suivi d'un nom de variable et de l'affectation-ici, "Bonjour, terrain de jeu"
. Jusqu'ici tout va bien.
Ce que vous ne voyez pas dans cette ligne de code est une affectation de type. Ce n'est pas nécessaire. Créons une nouvelle variable appelée int et donnons-lui la valeur 8
:
var int = 8
Ok, maintenant changeons le str
variable pour être la valeur 4
. Immédiatement, le compilateur se plaint que vous essayez de définir une valeur de type int
être de type Chaîne
.
Comment sait-il à ce sujet?
C'est inféré. Malgré son apparence, Swift est un langage statiquement typé, ce qui signifie que chaque variable a un type. Mais contrairement à la plupart des autres langues, il peut déduire le type quand une valeur lui est assignée pendant la définition. Pour notre cas, cela signifie que depuis le str
variable a reçu une chaîne, elle a automatiquement reçu le type Chaîne
.
La même chose pour le int
variable. Celui-ci nous pouvons mettre à 4
parce que c'est un entier.
Parfois, vous souhaitez spécifier explicitement le type de variable. Bien sûr, cela est possible aussi. Créons une variable double
, et le mettre à 4
.
Nous savons déjà qu'il sera initialisé à un entier, malgré le nom. Alors, quand nous essayons de le régler à 4,5
, cela va échouer. Pour être sûr que ce sera néanmoins un double, nous devons le définir en utilisant deux points après le nom de la variable, suivi du type, en majuscule., Double
.
Bon, passons maintenant aux constantes. Ce sont ceux à utiliser si vous ne voulez pas changer la valeur que vous avez initialement définie.
Le compilateur Swift est très intelligent à ce sujet et vous avertit si vous utilisez une variable pour laquelle vous voulez une constante et inversement. Pour définir une constante, vous aurez besoin du mot clé laisser
au lieu de var
. Dans le code précédent, si vous modifiez le double
variable à constante, le compilateur vous avertira du changement que vous essayez d’apporter à la ligne suivante en le définissant sur 4,5
.
Une chose très amusante à la sortie de Swift est le fait qu’elle soit entièrement compatible Unicode. Cela signifie également que les noms de variable peuvent être n’importe quel caractère de type Unicode, si vous voulez définir π
à 3.14159
. Il prend même en charge l’utilisation d’emojis pour nommer vos variables et fonctions.
La dernière fonctionnalité majeure concernant les variables dans Swift est les optionnels.
Chaque fois que vous définissez une variable, vous devez l'initialiser avant de l'utiliser. Si vous ne le faites pas, votre programme ne compilera pas. Parfois, cependant, votre variable n'aura pas toujours une valeur. Par exemple, lorsque vous disposez d’une fonction de rappel qui renvoie le résultat d’une opération ou une erreur.
Il y a toujours eu le concept de pointeurs nuls dans la programmation. Dans Swift, ceux-ci sont nommés nil. Ce sont des variables initialisées avec une valeur spéciale nulle. Si vous souhaitez autoriser une valeur nulle pour une variable dans Swift, vous devez l'indiquer explicitement et la variable devient facultative. Par exemple:
var myVariable: String? print (myVariable)
Un facultatif est défini en ajoutant un point d'interrogation au type. Cela rend immédiatement l’instruction print opérationnelle et néant
.
Modifions ma variable pour qu'elle soit un double et multiplions-la par 2. Bien que rien ne soit autorisé, vous ne pouvez pas en faire grand chose. Cela signifie que nous avons besoin d'une sauvegarde. Comme les contrôles nuls sont un problème très courant en programmation, les concepteurs de langage de Swift ont décidé de nous donner un moyen spécial de le gérer..
Vous avez peut-être appris cette affectation de variable dans un si
la déclaration est une mauvaise pratique. Pour Swift, c'est différent. Si vous faites si laisser maVariable = maVariable
, il va automatiquement déballer l'option pour vous et le rendre disponible dans le bloc if pour vous s'il n'est pas nul.
Donc initialisons la variable avec une valeur. Dans le bloc, il sera multiplié par 2 et imprimé. Mais si nous essayons de faire la même chose en dehors du bloc, cela échouera bien sûr.
Si vous savez absolument qu'une variable a une valeur et que vous ne voulez pas l'envelopper de manière conditionnelle, vous pouvez également la décompresser de force en utilisant un point d'exclamation. Cela le déroulera s'il y a une valeur, mais s'il n'y en a pas, il échouera très fort avec une exception d'exécution. Donc, si vous travaillez beaucoup avec les optionnels, souvenez-vous de cette spéciale si
déclaration.
Une chose très importante quand il s'agit de travailler avec statique laisser
types est la conversion de type.
Disons que vous avez un double et que vous voulez un entier. Dans Swift, chaque type est livré avec un initialiseur, même des booléens ou des entiers. Les types par défaut ont également des initialiseurs pour les types compatibles, nous pouvons donc utiliser le int
initialiseur pour convertir notre double.
Pour élaborer davantage sur la conversion de caractères, je dois présenter un nouvel ensemble de types, de collections. Je suis presque sûr que vous savez ce qu'est un tableau, et bien sûr, ils sont également disponibles dans Swift. Créons un tableau d'entiers:
laisser intArray = [1, 2, 3, 4]
Vous serez peut-être habitué à mettre dans un tableau tout ce qui vous passe par la tête et à mélanger des types. Mais dans Swift, les tableaux sont également statiquement typés par rapport à leurs valeurs. Cela signifie que si vous souhaitez ajouter une chaîne à votre tableau d'entiers, Swift ne sait pas quoi faire.. let intArray = [1, 2, 3, 4, "Chaîne"]
donnera un message d'erreur.
Supprimons donc la chaîne et ajoutons-la sur une ligne distincte du tableau. Maintenant, il affiche le message d'erreur que je voulais vous montrer.
Cette erreur provient du type du tableau, puisqu'il est supposé être un tableau d'entiers. Nous pouvons explicitement le définir sur ce type en utilisant des crochets autour du type du contenu. C'est la méthode la plus concise pour définir le tableau.
Vous pouvez également utiliser le tableau de types et utiliser des chevrons pour définir le type. Cela peut vous sembler plus familier si vous venez d’une autre langue. Bien sûr, dans certains cas, vous souhaitez autoriser des types mélangés dans un tableau. Dans quelques instants, je vais vous montrer un autre type de données dans lequel vous allez stocker la réponse JSON d'un serveur Web, qui peut contenir des nombres, des booléens ou des chaînes..
Il existe un mot-clé spécial dans Swift qui permet à ces types d’être présents, il s’appelle Tout
. Cela signifie que cela peut être n'importe quel type. Bien sûr, le problème est que nous sommes toujours dans un langage à typage statique. Maintenant les valeurs sont de type Tout
. Si nous voulons additionner les deux premiers entiers, il ne le fait tout simplement pas, car Tout
le type ne supporte pas l'opérateur d'addition.
Cela signifie que nous devons utiliser le transtypage pour les convertir en un type correct. Nous pouvons utiliser le comme
mot-clé pour le faire. Et, bien sûr, comme ce n’est pas sûr, nous devons également utiliser le détendeur pour le forcer, car il n’ya pas de conversion connue entre Tout
et int
. Si nous faisons cela, cependant, nous devons faire très attention aux types réels. Si nous convertissons le mauvais élément en entier, il échouera à l'exécution avec une exception..
Maintenant, il manque une chose importante. Ce sont des dictionnaires. Si vous venez d'une autre langue, vous pourriez les connaître sous forme de cartes ou de hachages.
Ils ont des clés qui ont des valeurs. Si vous voulez les définir explicitement, vous ferez comme le tableau en utilisant des crochets mais en séparant la clé et la valeur par deux points..
Définir un Chaîne
clé et un Tout
valeur serait un cas d'utilisation très commun lors de l'analyse de données JSON à partir du Web.
Dans le cours complet, Créer des applications iOS avec Swift 3, vous obtiendrez un guide complet sur l’utilisation de Swift 3 pour créer des applications iOS..
Que vous soyez novice dans le développement d'applications iOS ou que vous souhaitiez passer d'Objective-C, ce cours vous permettra de démarrer avec Swift dans le développement d'applications. Vous apprendrez toutes les fonctionnalités de base du langage, des variables aux classes. Vous aurez également une introduction à l'utilisation de Xcode pour le développement d'applications au fur et à mesure que vous suivez et implémentez le projet de cours: un visualiseur de séquence Fibonacci interactif..