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-დან გამოსვლისას, независимо იმისა, როგორ დასრულდება ფუნქცია.