Sobes.tech
Junior — Middle

Оё структура ё ёрига дор аст ё методи тоза кардани захираҳо ё деструктор дорад?

sobes.tech AI

Ҷавоб аз AI

Дар Swift, структураҳо (struct) ягон деструктор надоранд, зеро онҳо навъҳои арзишӣ ҳастанд ва автоматӣ идора мешаванд. Классҳо (class), баръакс, метавонанд деструктор дошта бошанд — усули deinit, ки пеш аз озод кардани нусха аз ёдгирӣ, фаро хонда мешавад. Дар деструктор одатан захираҳо озод карда мешаванд, файлҳо мебанданд, обунаҳоро бекор мекунанд ва ғайра.

Масалан, дар клас бо деструктор:

class FileHandler {
    let fileName: String

    init(fileName: String) {
        self.fileName = fileName
        print("Файл кушода шуд \(fileName)")
    }

    deinit {
        print("Файл баста шуд \(fileName)")
    }
}

var handler: FileHandler? = FileHandler(fileName: "data.txt")
handler = nil // deinit-ро даъват мекунад

Аз ин рӯ, танҳо классҳо дорои deinit деструктор ҳастанд, структураҳо — не.