Sobes.tech
Junior

Kādu lomu spēlē konstrukcija defer Go valodā?

sobes.tech AI

Atbilde no AI

Go valodā konstrukcija defer tiek izmantota, lai atliktu funkcijas izpildi — tā tiks izsaukta, iznākot no pašreizējās funkcijas, neatkarīgi no tā, kā notiek iziešana (normāli vai kļūdas dēļ).

Tas ir noderīgi resursu atbrīvošanai, failu aizvēršanai, mutexu atbloķēšanai un citām tīrīšanas operācijām.

Piemērs:

func readFile() error {
    file, err := os.Open("file.txt")
    if err != nil {
        return err
    }
    defer file.Close() // fails tiks aizvērts, iznākot no funkcijas

    // darbs ar failu
    return nil
}

Tādējādi defer palīdz nodrošināt svarīgu noslēguma darbību izpildi, uzlabojot resursu pārvaldību un kļūdu apstrādi.