Senior
Go-da kontekst (context) nədir və niyə lazımdır?
sobes.tech Süni İntellekt
AI-dan cavab
Go'da context — bu paket və tipdir, o, goroutine'lar arasında ləğv siqnalları, vaxt limitləri və digər əhəmiyyətli məlumatların ötürülməsi üçün istifadə olunur.
context-in əsas vəzifələri:
- Vaxt limiti və ya istifadəçi tərəfindən ləğv olunduqda əməliyyatları ləğv etməyə imkan verir (məsələn, verilənlər bazası və ya HTTP sorğuları).
- Əməliyyatlar üçün vaxt limitlərini (deadlines) ötürür.
- Funksiyalar arasında dəyərləri (məsələn, sorğu identifikatorları) ötürməyə imkan verir.
İstifadə nümunəsi:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
select {
case result := <-doWork(ctx):
fmt.Println("Nəticə:", result)
case <-ctx.Done():
fmt.Println("Əməliyyat ləğv olundu və ya vaxt bitdi")
}
Burada, ctx doWork funksiyasına ötürülür və o, kontekst ləğv edilərsə və ya vaxt bitərsə, işini dayandıra bilər. Bu, əməliyyatların və resursların ömrünü idarə etməyə kömək edir.