Junior — Middle
Quali operazioni o proprietà sono disponibili durante la definizione di una classe che non sono presenti in una struttura?
sobes.tech AI
Risposta dell'AI
In Swift, le classi hanno diverse caratteristiche che le strutture non possiedono:
- Ereditarietà: le classi possono ereditare da altre classi, consentendo di creare gerarchie e di sovrascrivere metodi.
- Deinitializers (deinit): le classi possono avere deinitializer per liberare risorse quando un'istanza viene eliminata.
- Tipo di riferimento: le classi vengono passate per riferimento, mentre le strutture per valore.
- Tipi di proprietà: le classi possono avere proprietà che sono riferimenti ad oggetti, influenzando la gestione della memoria.
- Possibilità di usare riferimenti
weakeunownedper prevenire cicli di riferimenti forti.
Esempio di una classe con deinitializer:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) sta per essere deinitializzata")
}
}