Cette section a été relue et corrigée, elle prend maintenant en compte les modifications apportées avec Swift 2.

Les constantes et les variables sont associées à un nom (comme nombreMaxLogin ou welcomeMessage par exemple) avec une valeur et un type particulier (comme le nombre 10 ou la chaîne de caractères "Hello"). La valeur d’une constante ne peut être modifiée une fois définie, sinon il s’agit d’une variable et elle pourra prendre différentes valeurs dans le futur.

Déclarer les constantes et les variables

Les constantes et les variables doivent être déclarées avant d’être utilisées. On déclare les constantes avec le mot-clé let et les variables avec var. Voici un exemple qui montre comment les constantes et les variables peuvent être utilisées pour vérifier le nombre de tentatives de connexion d’un utilisateur sur votre application :

1 let tentativesMaxLogin = 10
2 var tentativesLogin = 0

Ce bout de code peut être lu de la façon suivante : “Déclare une nouvelle constante appelée tentativesMaxLogin, et attribue lui la valeur 10.” “Ensuite, déclare une nouvelle variable appelée tentativesLogin, et donne lui la valeur initiale 0.”

Dans cet exemple, le nombre maximum de connexions autorisées est déclaré en tant que constante, parce-que ce nombre ne devra pas être amené à être changé. En revanche le compteur du nombre de tentatives de connexion est déclaré en tant que variable, puisque sa valeur sera incrémentée positivement après chaque échec de connexion.

Vous pouvez déclarer plusieurs constantes ou plusieurs variables en même temps sur une seule ligne en les séparant par des virgules :

var x = 0.0, y = 0.0, z = 0.0

Note : Si vous stockez une valeur dans votre code qui ne sera pas amenée à changer, déclarez la toujours en tant que constante avec le mot-clé let. Utilisez les variables uniquement pour stocker des valeurs qui auront besoin de changer.

Annotation des types

Vous pouvez indiquer le type de votre constante ou votre variable lorsque vous la déclarez, pour être clair avec les sortes de valeurs que vous souhaitez stocker. Pour indiquer le type d’une constante ou d’une variable, écrivez le type juste après son nom séparé par deux points et d’un espace.

Cet exemple montre une annotation de type pour une variable appelée messageBienvenue pour indiquer qu’il s’agit d’une chaîne de caractère (String) :

var messageBienvenue: String

Les deux points dans la déclaration veulent dire : ”…du type…“, du coup le code ci-dessus peut-être lu comme ceci :

“Déclare une variable appelée messageBienvenue qui est du type String.”

La phrase “du type String veut dire “peut stocker une valeur de type chaîne de caractères”. C’est le “type de chose” qui peut être stocké. La variable messageBienvenue peut maintenant accueillir n’importe quelle chaîne de caractère sans erreur :

messageBienvenue = "Hello"

Note : En réalité il est rare dans la pratique que vous ayiez à indiquer le type d’une variable ou d’une constante. En fournissant une valeur lors de la déclaration de votre constante ou de votre variable, Swift est capable de deviner son type. Les annotations de typages interviennent uniquement dans le cas d’une conversion ou de l’enregistrement d’une donnée ambigüe. Dans l’exemple ci-dessus avec la variable messageBienvenue, aucune valeur initiale n’est fournie, le type de la variable est alors spécifié avec une annotation, mais cette annotation aurait été inutile en fournissant une valeur initiale à la variable.

Nommage des constantes et des variables

Vous pouvez utiliser n’importe quel caractère pour vos noms de variables et de constantes, même les caractères spéciaux et unicode :

1 let π = 3.14159
2 let 你好 = "你好世界"
3 let 💋💖 = "bisoucoeur"

Les noms des constantes et des variables ne peuvent pas contenir de symboles mathématiques, de flèches, de code Unicode invalide ni de points. Ils ne peuvent pas non plus commencer par un chiffre mais il est possible d’inclure des chiffres dans le nom de variables et des constantes n’importe où ailleurs dans leurs noms.

Une fois que vous avez déclaré une contante ou une variable d’un certain type, vous ne pouvez plus utiliser son nom pour en déclarer une autre ou changer le type de valeur qui y sont stockées. Vous ne pouvez pas non plus changer une constante en variable et une variable en constante.

Note : Si vous avez besoin de donner à une constante ou une variable le même nom qu’un mot-clé Swift réservé, vous pouvez le faire en entourant le mot-clé avec des guillemets inversés quand vous l’utilisez en tant que nom. Néanmoins vous ne devriez utiliser cette solution que dans la mesure où vous n’avez vraiment pas le choix.

Vous pouvez change la valeur d’une variable existante par une autre valeur d’un type compatible. Dans l’exemple ci-dessous, la valeur de bonjourAmical est passée de "Hello!" à "Bonjour!" :

1 var bonjourAmical = "Salut!"
2 bonjourAmical = "Bonjour!"
3 // bonjourAmical vaut maintenant "Bonjour!"

Contrairement aux variables, la valeur d’une constante ne peut pas être modifiée une fois qu’elle a été définie. Si vous tentez de changer la valeur d’une constante vous vous exposez à une erreur au moment de la compilation :

1 let nomLangage = "Swift"
2 nomLangage = "Swift 2"
3 // Error - nomLangage cannot be changed

Afficher les constantes et les variables

Vous pouvez afficher la valeur courante d’une constante ou d’une variable avec la fonction print(_:) :

1 print(bonjourAmical)
2 // Affichera à l'écran "Bonjour!"

print(_:) est une fonction globale qui affiche une valeur, suivie d’un retour à la ligne, à la sortie appropriée. Si vous travaillez depuis Xcode, par exemple, print(_:) affichera la valeur demandée dans la console Xcode. Une fonction liée, print(_:appendNewline:), réalise exactement la même opération mais sans le retour à la ligne après l’affichage de la valeur.

La fonction print(_:) affiche n’importe quelle chaîne de caractères qu’on lui fournit :

1 print("Ceci est une chaîne de caractères")
2 // Affiche "Ceci est une chaîne et caractères"

La fonction print(_:) peut afficher des messages de logs plus complets. Ces messages peuvent inclure les valeurs de contantes ou de variables.

Swift convertit systématiquement les valeurs incluses dans les variables et les constantes en chaîne de caractères pour s’afficher dans la console Xcode avec print(_:). Il est possible d’afficher une chaîne de caractères avec une variable ou une constante en précédant son nom d’un anti-slash et en l’entourant de parenthèses :

1 print("La valeur actuelle de bonjourAmical est \(bonjourAmical)")
2 // Affiche "La valeur actuelle de bonjourAmical est Bonjour!"

Note : Toutes les options que vous pouvez utiliser sont expliquées plus en détails dans la partie Interpolation des chaînes de caractères.