Junior — Middle
È possibile dichiarare metodi che modificano lo stato degli oggetti nelle classi in Swift?
sobes.tech AI
Risposta dell'AI
In Swift, i metodi che modificano lo stato di un oggetto sono dichiarati con la parola chiave mutating, ma questo riguarda solo strutture e enumerazioni (tipi di valore). Per le classi (tipi di riferimento), i metodi possono modificare di default le proprietà dell'istanza senza una parola chiave aggiuntiva.
Cioè:
- Nelle classi, è possibile dichiarare metodi che modificano lo stato dell'oggetto senza
mutating. - In strutture ed enumerazioni, i metodi che modificano le proprietà devono essere contrassegnati come
mutating.
Esempio di una classe con metodo che modifica:
class Counter {
var count = 0
func increment() {
count += 1
}
}
let counter = Counter()
counter.increment()
print(counter.count) // 1
Esempio di struttura con metodo mutating:
struct Counter {
var count = 0
mutating func increment() {
count += 1
}
}
var counter = Counter()
counter.increment()
print(counter.count) // 1