Middle
Go tilida defer operatori nima?
sobes.tech AI
AIdan javob
defer operatori funksiyalar yoki metodlarni kechiktirilgan tarzda bajarish uchun ishlatiladi. defer bilan belgilangan funksiyalar, ularni o'z ichiga olgan funksiyadan chiqishdan oldin darhol bajariladi.
defer ning ishlash prinsiplari:
- Hozirgi funksiyadan chiqishda, normal bajarilish yoki panik bo'lishidan qat'i nazar, bajariladi.
- Bir funksiyada bir nechta
deferLIFO (Last-In, First-Out) tartibida bajariladi. - Resurslarni tozalash uchun foydalidir, masalan, fayllarni yoki tarmoq ulanishlarini yopish.
Foydalanish misoli:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Fayl ochilmoqda.")
file, err := os.Open("example.txt")
if err != nil {
// Xato bilan ishlash
return
}
// Kechiktirilgan fayl yopilishi
defer file.Close()
defer fmt.Println("Fayl yopiladi.") // Bu defer birinchi bajariladi (LIFO)
fmt.Println("Faylni qayta ishlash...")
// Fayl bilan qo'shimcha ish
}
Dastur chiqishi:
Fayl ochilmoqda.
Faylni qayta ishlash...
Fayl yopiladi.