Junior
Қай ролро дар забони Go нақш мебозад сохтори defer?
sobes.tech AI
Ҷавоб аз AI
Дар забони Go, сохтории defer барои таъхир дар иҷрои функсия истифода мешавад — он дар вақти баромад аз функсияи ҳозир, новобаста аз он ки чӣ гуна баромад мешавад (нормалӣ ё бо сабаби хато), фаро хонда мешавад.
Ин барои озод кардани захираҳо, бастани файлҳо, кушодани mutex ва дигар амалиётҳои тозакунӣ қулай аст.
Масалан:
func readFile() error {
file, err := os.Open("file.txt")
if err != nil {
return err
}
defer file.Close() // файл дар вақти баромад аз функсия баста мешавад
// кор бо файл
return nil
}
Ин тариқ, defer кӯмак мекунад, ки иҷрои амалҳои муҳим барои анҷом додан кафолат дода шавад, ки ин идоракунии захираҳо ва коркарди хатоҳоро беҳтар мекунад.