Menu
Coddy logo textTech

Aide-mémoire Swift

Dernière mise à jour

Hello World et bases

Swift ne nécessite aucun code standard au niveau supérieur - une seule ligne s'exécute.

OpérationSyntaxe
Afficher une ligneprint("Hello, World!")
Afficher sans saut de ligneprint("Hi", terminator: "")
Interpolation de chaîneprint("Hi \(name)")
Commentaire// this is a comment
Commentaire multiligne/* ... */
Importer un moduleimport Foundation
Exécuter un fichierswift run ou swift main.swift

Variables (let / var) et types

Utilisez let pour les constantes et var pour les valeurs mutables ; les types sont généralement inférés.

OpérationSyntaxe
Constantelet age = 30
Variablevar count = 0
Type explicitelet name: String = "Ada"
Types de baseInt, Double, String, Bool, Character
Conversion de typeDouble(i), String(n), Int("42")
Tuplelet pair = (1, "a")
Alias de typetypealias ID = Int
Vérifier le typevalue is String, value as? String

Optionals

Les optionals modélisent l'absence possible d'une valeur ; déballez-la avant utilisation.

OpérationSyntaxe
Déclarer un optionalvar name: String? = nil
Liaison optionnelleif let n = name { ... }
Déballage avec guardguard let n = name else { return }
Coalescence des nulslet n = name ?? "default"
Chaînage optionneluser?.address?.city
Déballage forcé (non sûr)name!
Déballé implicitementvar name: String!
Mapper sur un optionalname.map { $0.count }

Chaînes

Les chaînes sont des types valeur avec une prise en charge complète d'Unicode.

OpérationSyntaxe
Longueurs.count
Majuscules / minusculess.uppercased(), s.lowercased()
Concaténer"foo" + "bar"
Interpolation"Total: \(price)"
Contients.contains("ell")
A le préfixe / suffixes.hasPrefix("he")
Découpers.split(separator: ",")
Remplacers.replacingOccurrences(of: "a", with: "b")
Chaîne multiligne""" ... """

Collections (Array, Dictionary, Set)

Trois types de collection principaux, tous des types valeur.

OpérationSyntaxe
Littéral de tableauvar nums = [1, 2, 3]
Ajouter (append)nums.append(4)
Accès / nombrenums[0], nums.count
Map / filternums.map { $0 * 2 }, nums.filter { $0 > 1 }
Littéral de dictionnairevar ages = ["Ada": 30]
Accès au dictionnaireages["Ada"] renvoie un optional
Littéral d'ensemblevar ids: Set = [1, 2, 3]
Insérer dans un ensembleids.insert(4)
Itérer un dictionnairefor (k, v) in ages { ... }

Contrôle de flux

Les conditions ne nécessitent pas de parenthèses ; switch doit être exhaustif.

OpérationSyntaxe
If / elseif x > 0 { ... } else { ... }
Ternairelet r = x > 0 ? "pos" : "neg"
Switchswitch n { case 1: ...; default: ... }
Switch avec plagecase 1...5: ...
Boucle for-infor i in 0..<10 { ... }
For-in sur un tableaufor item in items { ... }
Boucle whilewhile x < 100 { ... }
Repeat-whilerepeat { ... } while x < 100
Break / continuebreak, continue

Fonctions et closures

Les fonctions ont des paramètres étiquetés ; les closures sont des blocs de code autonomes.

OpérationSyntaxe
Définir une fonctionfunc add(a: Int, b: Int) -> Int { a + b }
Étiquette externefunc greet(to name: String) { ... }
Paramètre par défautfunc greet(name: String = "World") { ... }
Paramètre variadiquefunc sum(_ nums: Int...) -> Int { ... }
Retours multiples (tuple)func bounds() -> (min: Int, max: Int) { ... }
Expression de closurelet f = { (x: Int) -> Int in x * x }
Closure en suffixenums.map { $0 * 2 }
Arguments abrégés{ $0 + $1 }

Structures vs classes

Les structures sont des types valeur (copiées) ; les classes sont des types référence (partagées).

OpérationSyntaxe
Définir une structurestruct Point { var x: Int; var y: Int }
Définir une classeclass Person { var name: String }
Initialiseur de classeinit(name: String) { self.name = name }
Créer une instancelet p = Point(x: 1, y: 2)
Méthode mutating de structuremutating func move() { x += 1 }
Méthode de classefunc greet() { ... }
Héritage (classes uniquement)class Student: Person { ... }
Propriété calculéevar area: Int { width * height }
Membre statiquestatic let shared = Manager()

Enums

Les enums regroupent des valeurs liées et peuvent porter des données associées.

OpérationSyntaxe
Définir un enumenum Direction { case north, south }
Utiliser un caselet d = Direction.north
Switch sur un enumswitch d { case .north: ... }
Valeurs brutesenum Status: Int { case ok = 200 }
Accéder à la valeur bruteStatus.ok.rawValue
Init depuis une valeur bruteStatus(rawValue: 200)
Valeurs associéescase result(Int, String)
Méthodes sur les enumsfunc label() -> String { ... }

La syntaxe Swift que vous utilisez le plus, sur une seule page. Cet aide-mémoire Swift est une référence rapide pour le cœur du langage - constantes et variables, optionals, chaînes, collections, contrôle de flux, fonctions et closures, plus les structures, classes et enums avec lesquels vous construisez des applications iOS et macOS.

Tout ce qui figure ici est du Swift standard et se compile avec la chaîne d'outils officielle. Copiez ce dont vous avez besoin, ou essayez chaque extrait en direct dans le playground Swift - aucun Xcode requis.

FAQ de l'aide-mémoire Swift

Cet aide-mémoire Swift est-il gratuit ?
Oui. Cet aide-mémoire Swift est entièrement gratuit, sans inscription. Mettez-le en favori et revenez dès que vous devez retrouver un motif d'optional, une syntaxe de closure ou une méthode de collection.
Comment déballer un optional en Swift ?
Un optional peut contenir une valeur ou nil, vous le déballez donc avant utilisation. Les méthodes sûres sont la liaison optionnelle (if let n = name { ... }), un guard let en début de fonction, l'opérateur de coalescence des nuls (name ?? "default") et le chaînage optionnel (user?.name). Le déballage forcé avec name! fonctionne mais plante si la valeur est nil, alors n'y recourez que lorsque vous êtes certain.
Quelle est la différence entre une structure et une classe en Swift ?
Une struct est un type valeur : l'affecter ou la passer en crée une copie, donc les modifications n'affectent pas l'original. Une class est un type référence : les copies partagent la même instance, et seules les classes prennent en charge l'héritage. La recommandation d'Apple est de préférer les structures par défaut et d'utiliser une classe lorsque vous avez besoin d'un état mutable partagé ou de l'héritage.
Puis-je m'entraîner à Swift en ligne ?
Oui. Ouvrez le playground Swift pour exécuter n'importe quel extrait de cet aide-mémoire dans votre navigateur - aucun Xcode à installer. Quand vous voulez de la structure, le cours Swift interactif gratuit de Coddy vous emmène des optionals et des collections jusqu'aux structures, classes et enums, étape par étape.
Cet aide-mémoire convient-il aux débutants ?
Oui. Il est organisé des sujets les plus courants (variables, optionals, contrôle de flux) jusqu'aux plus avancés (closures, structures vs classes, enums), pour que vous puissiez utiliser les premières sections dès le premier jour et progresser vers le reste.
Coddy programming languages illustration

Apprenez Swift avec Coddy

COMMENCER