Types valeur et immutabilité
Découvrez comment let empêche la modification des types valeur.
Types valeur et immutabilité est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.
Les structures sont des types valeur
Dans Swift, struct et enum sont des types valeur. Affecter l’un d’eux à une nouvelle variable le copie.
struct Point { var x: Int; var y: Int }
var a = Point(x: 1, y: 2)
var copy = a
copy.x = 99
print(a.x, copy.x)let verrouille toute la valeur
Déclarer une structure avec let rend toute la valeur immuable, y compris toutes ses propriétés.
struct Counter { var value: Int }
let c = Counter(value: 0)
// c.value = 5 // compile error
print(c.value)var autorise la modification
Utilisez var lorsque vous prévoyez de modifier les propriétés d’une structure après sa création.
struct Counter { var value: Int }
var c = Counter(value: 0)
c.value = 5
print(c.value)Copie lors de l’affectation
Chaque variable contient sa propre copie indépendante. Modifier l’une ne modifie jamais l’autre.
struct Box { var label: String }
var first = Box(label: "A")
var second = first
second.label = "B"
print(first.label, second.label)Sémantique de valeur dans les fonctions
Transmettre une structure à une fonction revient à transmettre une copie. L’original situé en dehors de la fonction reste inchangé.
struct Score { var points: Int }
func bump(_ s: Score) {
var local = s
local.points += 10
}
var s = Score(points: 0)
bump(s)
print(s.points)Propriétés immuables
Une propriété déclarée avec let dans une structure ne peut jamais changer, même dans une instance var.
struct User { let id: Int; var name: String }
var u = User(id: 1, name: "Ada")
u.name = "Bob"
// u.id = 2 // compile error
print(u.id, u.name)Les tableaux sont aussi des types valeur
Les Array, Dictionary et Set de Swift sont des structures et sont donc copiés lors d’une affectation.
var a = [1, 2, 3]
var b = a
b.append(4)
print(a)
print(b)Les chaînes sont des types valeur
String est également un type valeur. Modifier une copie ne modifie pas l’original.
var s1 = "hi"
var s2 = s1
s2 += " there"
print(s1)
print(s2)Pourquoi les types valeur sont utiles
La sémantique de valeur évite les erreurs dues à un état partagé accidentellement. Vous pouvez raisonner localement sur une valeur sans vous demander qui d’autre détient une référence.
struct Config { var retries: Int }
let defaultConfig = Config(retries: 3)
var custom = defaultConfig
custom.retries = 5
print(defaultConfig.retries, custom.retries)Immuabilité et sécurité
Marquer les valeurs avec let chaque fois que possible rend le code plus sûr et plus clair. Le compilateur garantit qu’elles ne changent jamais.
let limit = 100
let name = "stable"
print(limit, name)Réaffecter une variable let échoue
Vous ne pouvez pas réaffecter une liaison let, ni modifier la valeur qu’elle contient.
let pi = 3.14
// pi = 3.15 // compile error
print(pi)Vérification rapide
Testez le comportement des types valeur.
Récapitulatif
Les structures et les énumérations sont des types valeur : elles sont copiées lors d’une affectation et lorsqu’elles sont transmises à des fonctions. Une liaison let verrouille toute la valeur et une propriété let ne peut jamais changer. Cela fournit un état prévisible et isolé.
struct P { var n: Int }
var a = P(n: 1)
var b = a
b.n = 9
print(a.n, b.n)Questions Fréquemment Posées
La leçon « Types valeur et immutabilité » est-elle gratuite ?
Oui — le texte complet de « Types valeur et immutabilité » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Types valeur et immutabilité » ?
Découvrez comment let empêche la modification des types valeur. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Swift Academy ?
Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Types valeur et immutabilité » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?
Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Types valeur et immutabilité
- Le mot-clé mutating
- Mutating et réaffectation de self
- Alternatives non mutantes