Sobes.tech
Middle

რა არის defer in Go და როდის იძახება?

sobes.tech AI

პასუხი AI-სგან

Go ენის კოდში, defer საკვანძო სიტყვა გამოიყენება ფუნქციის გამოძახების დაგვიანებისთვის: ის შესრულდება გარშემომყოფი ფუნქციის დასრულების შემდეგ, მაგრამ მის გამოსვლამდე.

ეს სასარგებლოა რესურსების გათავისუფლების, ფაილების დახურვის, mutex-ების გასაღების და სხვა სუფთავების ოპერაციებისათვის, გარანტირებული რომ ისინი მოხდება მაშინაც კი, თუ შეცდომა ან პანიკა მოხდება.

მაგალითი:

func readFile() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close() // ფაილი დაიხურება ფუნქციის ბოლოს

    // მუშაობა ფაილთან
}

აქ, file.Close() ავტომატურად გამოიძახება readFile-დან გამოსვლისას, независимо იმისა, როგორ დასრულდება ფუნქცია.