Junior — Middle
Peut-on déclarer des méthodes modifiant l'état des objets dans des classes en Swift?
sobes.tech IA
Réponse de l'IA
En Swift, les méthodes qui modifient l'état d'un objet sont déclarées avec le mot-clé mutating, mais cela ne concerne que les structures et les énumérations (types de valeur). Pour les classes (types de référence), les méthodes peuvent modifier par défaut les propriétés de l'instance sans mot-clé supplémentaire.
C'est-à-dire :
- Dans les classes, il est possible de déclarer des méthodes qui modifient l'état de l'objet sans
mutating. - Dans les structures et énumérations, les méthodes modifiant des propriétés doivent être marquées comme
mutating.
Exemple d'une classe avec une méthode modifiante :
class Counter {
var count = 0
func increment() {
count += 1
}
}
let counter = Counter()
counter.increment()
print(counter.count) // 1
Exemple de structure avec méthode mutating :
struct Counter {
var count = 0
mutating func increment() {
count += 1
}
}
var counter = Counter()
counter.increment()
print(counter.count) // 1