Dans le premier article de Swift From Scratch, vous avez découvert les terrains de jeux Xcode et rédigé vos premières lignes de Swift. Dans cet article, nous allons commencer à apprendre les bases du langage de programmation Swift en explorant les variables et la dactylographie. Nous examinerons également de près les constantes et pourquoi nous vous encourageons à les utiliser le plus possible.
Dans les prochaines tranches de cette série, nous allons utiliser les terrains de jeu Xcode pour apprendre les bases du langage de programmation Swift. Comme nous l’avons vu dans l’article précédent, les terrains de jeu sont parfaits pour enseigner et apprendre à Swift..
Commençons par créer un nouveau terrain de jeu pour ce tutoriel. Je vous encourage à suivre! L'utilisation d'une langue est un excellent moyen d'apprendre sa syntaxe et de comprendre ses concepts..
Lancez Xcode 8 et créez un nouveau terrain de jeu en sélectionnant Nouveau> Terrain de jeu… de Xcode Fichier menu. Entrez un nom pour le terrain de jeu, définissez Plate-forme à iOS, et cliquez Suivant. Indiquez à Xcode où vous souhaitez enregistrer le terrain de jeu et appuyez sur Créer.
Effacez le contenu de la cour afin que nous puissions commencer par une table rase. Nous avons déjà utilisé des variables dans le didacticiel précédent, mais examinons maintenant de plus près les détails essentiels pour mieux comprendre ce que Swift fait en coulisse..
Dans Swift, nous utilisons le var
mot-clé pour déclarer une variable. Bien que cela ressemble à la façon dont les variables sont déclarées dans d'autres langages de programmation, je vous déconseille vivement de penser à d'autres langages de programmation lors de l'utilisation de var
mot-clé dans Swift. Il y a quelques différences importantes.
le var
mot-clé est le seul moyen de déclarer une variable dans Swift. L’utilisation la plus courante et la plus concise de la var
mot-clé est de déclarer une variable et de lui attribuer une valeur.
var street = "5th Avenue"
Rappelez-vous que nous ne terminons pas cette ligne de code par un point-virgule. Bien qu'un point-virgule soit facultatif dans Swift, la meilleure pratique consiste à ne pas utiliser un point-virgule s'il n'est pas requis..
Vous avez peut-être aussi remarqué que nous n’avons pas spécifié de type lors de la déclaration de la variable rue
. Cela nous amène à l'une des principales caractéristiques de Swift, inférence de type.
L'instruction ci-dessus déclare une variable rue
et attribue la valeur 5ème avenue
à cela. Si vous êtes nouveau dans Swift ou que vous êtes habitué à JavaScript ou à PHP, vous pensez peut-être que Swift est un langage sans ou sans typage, mais rien ne peut être plus éloigné de la vérité. Permettez-moi de répéter que Swift est un langage fortement typé. Type de sécurité est l'une des pierres angulaires de la langue.
Nous commençons tout juste à démarrer et Swift nous montre déjà un peu de sa magie. Même si l’instruction ci-dessus ne spécifie pas explicitement un type, la variable rue
est de type Chaîne
. C'est l'inférence de type de Swift en action. La valeur que nous attribuons à rue
est une ficelle. Swift est assez intelligent pour voir cela et définit implicitement le type de rue
à Chaîne
.
La déclaration suivante nous donne le même résultat. La différence est que nous définissons explicitement le type de la variable. Cette déclaration dit littéralement que rue
est de type Chaîne
.
var street: String = "5th Avenue"
Swift vous oblige à définir explicitement ou implicitement le type de variables et de constantes. Si vous ne le faites pas, Swift se plaint en jetant une erreur. Ajoutez la ligne suivante à votre terrain de jeu pour voir ce que je veux dire.
nombre var
Cette déclaration serait parfaitement valide en JavaScript ou en PHP. Dans Swift, cependant, il est invalide. La raison est simple. Même si nous déclarons une variable en utilisant le var
mot-clé, nous ne spécifions pas le type de la variable. Swift est incapable d'inférer le type car nous n'affectons pas de valeur à la variable. Si vous cliquez sur l'erreur, Xcode vous dit ce qui ne va pas avec cette déclaration.
Nous pouvons facilement résoudre ce problème en effectuant l'une des deux choses suivantes. Nous pouvons affecter une valeur à la variable comme nous l'avons fait précédemment ou spécifier explicitement un type pour la variable. nombre
. Lorsque nous définissons explicitement le type de nombre
, l'erreur disparaît. La ligne de code ci-dessous indique que nombre
est de type Chaîne
.
numéro var: String
Comme vous pouvez le voir ci-dessous, l’affectation de nouvelles valeurs à rue
et nombre
est simple et sans surprises.
var street: String = "5th Avenue" numéro var: String street = "Main Street" number = "10"
Ne serait-il pas plus facile d'attribuer le numéro dix
au nombre
variable? Il n'est pas nécessaire de stocker le numéro de rue sous forme de chaîne. Voyons ce qui se passe si nous faisons.
var street: String = "5th Avenue" numéro var: String street = "Main Street" numéro = 10
Si nous assignons un entier à nombre
, Xcode nous lance une autre erreur. Le message d'erreur est clair. Nous ne pouvons pas assigner une valeur de type Int
à une variable de type Chaîne
. Ce n'est pas un problème dans les langages typés, mais c'est dans Swift.
Swift est un langage fortement typé dans lequel chaque variable a un type spécifique et ce type ne peut pas être modifié. Lisez à nouveau cette phrase pour la laisser pénétrer, car c’est un concept important dans Swift..
Pour se débarrasser de l'erreur, nous devons déclarer le nombre
variable en tant que Int
. Jetez un coup d'œil à l'exemple mis à jour ci-dessous.
var street: String = "5th Avenue" numéro var: Int street = "Main Street" numéro = 10
Il est important que vous gardiez ceci à l'esprit. Vous pouvez déclarer une variable avec le var
mot-clé, et vous n'avez pas besoin de déclarer explicitement le type de la variable. Cependant, rappelez-vous que chaque variable - et constante - a un type dans Swift. Si Swift ne peut pas en déduire le type, il se plaint. Chaque variable a un type, et ce type ne peut pas être changé.
Les constantes sont similaires aux variables en termes de typage. La seule différence est que la valeur d'une constante ne peut pas être modifiée une fois qu'elle a une valeur. La valeur d'une constante est, eh bien… constante.
Pour déclarer une constante, vous utilisez le laisser
mot-clé. Regardez l'exemple suivant dans lequel nous déclarons rue
comme une constante au lieu d'une variable.
let street: String = "5th Avenue" numéro var: Int street = "Main Street" numéro = 10
Si nous ne mettons à jour que la première ligne, en remplaçant var
avec laisser
, Xcode génère une erreur pour des raisons évidentes. Essayer de changer la valeur d'une constante n'est pas autorisé dans Swift. Supprimez ou commentez la ligne dans laquelle nous essayons d’attribuer une nouvelle valeur à rue
se débarrasser de l'erreur.
let street: String = "5th Avenue" numéro var: Int // street = "Main Street" numéro = 10
J'espère que vous conviendrez que déclarer des constantes est très facile avec Swift. Il n'est pas nécessaire d'utiliser des mots-clés exotiques ou une syntaxe complexe. Déclarer des constantes est aussi simple que déclarer des variables, et ce n'est pas un hasard.
L'utilisation de constantes est encouragée dans Swift. Si une valeur ne va pas changer ou si vous ne vous attendez pas à la changer, alors cela devrait être une constante. Cela présente de nombreux avantages. L'un des avantages est la performance, mais un avantage plus important est la sécurité. En utilisant des constantes dans la mesure du possible, vous ajoutez des contraintes à votre code, ce qui rend le code plus sûr..
La plupart des langages de programmation ont une large gamme de types pour stocker des chaînes, des entiers, des flottants, etc. La liste des types disponibles dans Swift est concise. Jetez un oeil à la liste suivante:
Int
Flotte
Double
Chaîne
Personnage
Bool
Il est important de comprendre que les types ci-dessus ne sont pas des types de base ou primitifs. Ce sont des types nommés, qui sont implémentés par Swift en utilisant des structures. Nous explorerons les structures plus en détail plus tard dans cette série, mais il est bon de savoir que les types rencontrés jusqu'à présent ne sont pas identiques aux types primitifs que vous avez peut-être utilisés, par exemple, Objective-C..
Il existe de nombreux autres types de données dans Swift, tels que les n-uplets, les tableaux et les dictionnaires. Nous explorons ceux plus tard dans cette série.
Il y a un autre sujet dont nous devons discuter, conversion de type. Jetez un coup d'œil à l'extrait de code Objective-C suivant. Ce bloc de code affiche la valeur 314.000000
à la console.
int a = 100; float b = 3,14; NSLog (@ "% f", (a * b));
Le runtime d'Objective-C convertit implicitement une
à une valeur en virgule flottante et multiplie par b
. Réécrivons l'extrait de code ci-dessus à l'aide de Swift.
var a = 100 var b = 3.14 empreinte (a * b)
Ignore le print (_: separator: terminator :)
fonction pour l'instant. Je veux d’abord me concentrer sur la multiplication de une
et b
. Swift en déduit le type de une
, un Int
, et b
, une Double
. Cependant, lorsque le compilateur tente de se multiplier une
et b
, il remarque qu'ils ne sont pas du même type. Cela peut ne pas sembler être un problème pour vous, mais c'est pour Swift. Swift ne sait pas quel type le résultat de cette multiplication devrait être. Devrait-il s'agir d'un entier ou d'un double?
Pour résoudre ce problème, nous devons nous assurer que les deux opérandes de la multiplication sont du même type. Swift ne convertit pas implicitement les opérandes pour nous, mais il est facile de le faire. Dans l'exemple mis à jour ci-dessous, nous créons un Double
en utilisant la valeur stockée dans une
. Cela résout l'erreur.
var a = 100 var b = 3.14 empreinte (double (a) * b)
Notez que le type de une
n'a pas changé. Même si l'extrait de code ci-dessus peut ressembler à du transtypage, ce n'est pas la même chose. nous utilisation la valeur stockée dans une
créer un Double
, et ce résultat est utilisé dans la multiplication avec b
. Le résultat de la multiplication est de type Double
.
Ce qu'il faut retenir, c'est que Swift est différent de C et d'Objective-C. Il ne convertit pas implicitement les valeurs des variables et des constantes. Ceci est un autre concept important à saisir.
Dans l'extrait de code précédent, vous avez appelé votre première fonction, print (_: separator: terminator :)
. Cette fonction est similaire à celle d'Objective-C NSLog
; il imprime quelque chose et ajoute une nouvelle ligne. Pour imprimer quelque chose sur la console ou sur le panneau de résultats à droite, vous appelez print (_: separator: terminator :)
et passez un paramètre. Cela peut être une variable, une constante, une expression ou un littéral. Regardez les exemples suivants.
var string = "ceci est une chaîne" let constant = 3.14 print (chaîne) print (constante) print (10 * 50) print ("chaîne littérale")
Il est également possible d'utiliser une interpolation de chaîne pour combiner des variables, des constantes, des expressions et des littéraux. L'interpolation de chaîne est très facile dans Swift. Envelopper les variables, constantes, expressions ou littéraux dans \ ()
. C'est de la tarte.
let street = "5th Avenue" let number = 10 print ("Elle habite dans \ (rue) \ (numéro).")
Il est essentiel que vous compreniez comment Swift gère les variables et les constantes. Il faudra peut-être un certain temps pour vous habituer au concept de constantes, mais une fois que vous aurez adopté cette pratique exemplaire, votre code sera beaucoup plus sûr et plus facile à comprendre. Dans le prochain tutoriel de cette série, nous poursuivrons notre exploration de Swift en examinant les collections..
Nous avons créé un guide complet pour vous aider à apprendre Swift, que vous commenciez juste à vous familiariser avec les bases ou que vous souhaitiez explorer des sujets plus avancés..
Si vous souhaitez apprendre à utiliser Swift 3 pour coder des applications réelles, consultez notre cours Créer des applications iOS avec Swift 3. Que vous débutiez dans le développement d'applications iOS ou que vous souhaitiez passer de Objective-C à un autre bien sûr, vous allez commencer avec Swift pour le développement d'applications.