Junior — Middle
Obsahuje struktura nebo třída metodu pro čištění zdrojů nebo destruktor?
sobes.tech AI
Odpověď od AI
Ve Swiftu nem mají struktury (struct) destruktory, protože jsou to hodnotové typy a jsou automaticky spravovány. Třídy (class) však mohou mít destruktor — metodu deinit, která se volá před uvolněním instance z paměti. V destruktoru se obvykle uvolňují zdroje, zavírají soubory, ruší předplatné atd.
Příklad třídy s destruktorom:
class FileHandler {
let fileName: String
init(fileName: String) {
self.fileName = fileName
print("Soubor otevřen \(fileName)")
}
deinit {
print("Soubor zavřen \(fileName)")
}
}
var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // zavolá deinit
Proto mají pouze třídy destruktor deinit, struktury nikoliv.