Sobes.tech
Middle

Kas ir defer Go valodā un kad tas tiek izsaukts?

sobes.tech AI

Atbilde no AI

Go valodā, atslēgvārds defer tiek izmantots funkcijas izsaukuma atlikšanai: tā tiks izpildīta pēc apkārtējās funkcijas pabeigšanas, bet pirms tās iziešanas.

Tas ir noderīgi resursu atbrīvošanai, failu aizvēršanai, mutexu atbloķēšanai un citām tīrīšanas operācijām, nodrošinot, ka tās notiks pat kļūdu vai panikas gadījumā.

Piemērs:

func readFile() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close() // fails tiks aizvērts funkcijas beigās

    // darbs ar failu
}

Šeit, file.Close() automātiski tiks izsaukts, iznākot no readFile, neatkarīgi no tā, kā funkcija beidzas.