Senior
Go-da context nədir və nə üçün lazımdır?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, context paket və tirdir və goroutine'lər və funksiyalar arasında məlumatlar və ləğv siqnallarını ötürmək üçün istifadə olunur. Bu, xüsusən şəbəkə sorğuları və uzunmüddətli proseslərdə əməliyyatların ömrünü idarə etmək üçün vacibdir.
context-in əsas imkanları:
- Əməliyyatı ləğv etmək (
context.CancelFuncvasitəsilə), lazım olduqda işi dayandırmaq. - Vaxt məhdudiyyətləri ötürmək (əməliyyatın nə vaxt tamamlanmalı olduğunu).
- Funksiyalar arasında dəyərlər ötürmək (məsələn, sorğu identifikatorları).
İstifadə nümunəsi:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
select {
case <-time.After(time.Second * 10):
fmt.Println("əməliyyat tamamlandı")
case <-ctx.Done():
fmt.Println("əməliyyat ləğv olundu və ya vaxt keçdi")
}
Bu şəkildə, context asinxron və uzunmüddətli əməliyyatların idarə olunmasına və koordinasiyasına kömək edir.