Nous allons découvrir les opérateurs de base de Swift qui vous permettront de manipuler des données de différents types. Les opérateurs sont des symboles ou des mots clés qui permettent d'effectuer des opérations mathématiques ou de comparaison sur des variables ou des constantes.

Opérateur d'assignation

L'opérateur d'affectation = initialise ou met à jour la valeur d'une variable.


let b = 10
var a = 5
a = b  
// a est maintenant égal à 10

Idem pour les tuples


let (x, y) = (1, 2)
// x est égal à 1, et y est égal à 2

Opérateur arithmétique

Addition (+), Soustraction (-), Multiplication (*), Division (/)


1 + 2       // égal 3
5 - 3       // égal 2
2 * 3       // égal 6
10.0 / 2.5  // égal 4.0

L'opérateur d'addition sert également pour la concaténation de chaînes de caractères (String) :


"hello, " + "world" 
// égal à "hello, world"

L'opérateur de reste % renvoie à la valeur restante (aussi connue sous le nom de modulo)


9 % 4    // reste 1
-9 % 4   // reste -1

Opérateur unaire

Le signe d'une valeur numérique peut être modifié à l'aide d'un préfixe (nombre relatif) :


let three = 3
let minusThree = -three       // minusThree égal -3
let plusThree = -minusThree   // plusThree égal 3

let minusSix = -6
let alsoMinusSix = +minusSix  // alsoMinusSix égal -6

Opérateur d'affectation composé

L'opérateur d'affectation composé sert à ajouter une valeur à celle déjà existante :


var a = 1
a += 2 // a est maintenant égal à 3
// Equivaut à  :
// a = a + 2

Opérateur de comparaison

  • Égal à (==) : a == b
  • Pas égal à (!) : a != b
  • Supérieur à (>) : a > b
  • Moins de (<) : a < b
  • Supérieur ou égal à (>=) : a >= b
  • Inférieur ou égal à (<=) : a <= b

Vous pouvez comparer deux tuples s'ils ont le même type et le même nombre de valeurs. Les tuples sont comparés de gauche à droite, une valeur à la fois, jusqu'à ce que la comparaison trouve deux valeurs qui ne sont pas égales.

Ces deux valeurs sont comparées et le résultat de cette comparaison détermine le résultat global de la comparaison de tuples. Si tous les éléments sont égaux, les tuples eux-mêmes sont égaux.


(1, "zebra") < (2, "apple")   // true car 1 est plus petit que 2; "zebra" et "apple" ne sont pas comparé
(3, "apple") < (3, "bird")    // true car 3 est égal à 3, et "apple" est plus petit que "bird"
(4, "dog") == (4, "dog")      // true car 4 est égal à 4, et "dog" est "égal à "dog"
("blue", false) < ("purple", true)  // Erreur car < ne peut comparer une valeur Booléenne

Opérateur conditionnel ternaire

L'opérateur conditionnel ternaire est un opérateur spécial en trois parties, c'est un raccourci pour évaluer l'une des deux expressions selon qu'elle soit vraie ou fausse. Utilisez la syntaxe suivante :

question ? réponse1 : réponse2

Si la valeur question est True, on assigne comme valeur réponse1, si elle est False, on assigne la valeur réponse2.


let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight est égal à 90

Opérateur Nil-coalecing

L'opérateur nil-coalescing (a ?? b) déballe un optionnel a s'il contient une valeur, ou renvoie une valeur b par défaut s'il est Nil. L'expression est toujours de type optionnel.

L'opérateur nil-coalescing, ou opérateur de coalescence, est un raccourci pour le code ci-dessous :


a != nil ? a! : b

Le code ci-dessus utilise l'opérateur conditionnel ternaire et le déballage forcé a!.


let defaultColorName = "red"
var userDefinedColorName: String?   // valeur Nil par défaut

var colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName est nil, donc colorNameToUse a comme valeur red