Sobes.tech
Junior — Middle

Go proqramlaşdırma dilində kontekstin rolu və məqsədi nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, (context.Context) kontekst əməliyyatların həyat müddətini idarə etmək, ləğv siqnallarını ötürmək və goroutine və funksiyalar arasında dəyərlər ötürmək üçün istifadə olunur.

Kontekstin əsas vəzifələri:

  • Əməliyyatların ləğvi: uzun və ya bloklayan əməliyyatları ləğv etməyə imkan verir, məsələn, vaxt aşımı və ya sorğunun ləğvi zamanı.
  • Müddətlərin ötürülməsi: əməliyyatın avtomatik olaraq dayandırılması üçün vaxt təyin edə bilərsiniz.
  • Dəyərlərin ötürülməsi: sorğu və ya əməliyyatla əlaqəli məlumatları, məsələn, istifadəçi identifikatorları, tokenlər və s. ötürməyə imkan verir.

İstifadə nümunəsi:

ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()

// Uzun müddətli əməliyyatı həyata keçirən funksiyaya ctx ötürürük
result, err := LongOperation(ctx)
if err == context.DeadlineExceeded {
    fmt.Println("Əməliyyat vaxt aşımı ilə dayandırıldı")
}

Kontekst, xüsusən şəbəkə və çoxsaylı tətbiqlərdə daha idarə olunan və cavabdeh kod yazmağa kömək edir.