Junior — Middle
Bağlamların kullanımıyla ilgili makul ve etkili olabilecek bir durumu tanımlayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da, bağlamlar (context.Context), özellikle asenkron veya ağ çağrılarında işlemlerin yaşam süresini yönetmek için kullanılır. Örneğin, bir HTTP sunucunuz varsa ve isteği işlerken, müşteri bağlantıyı keserse veya zaman aşımı limiti aşılırsa işlemi iptal etmek istiyorsanız, bağlam kullanımı uygun olacaktır.
Örnek:
func handler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
select {
case <-time.After(5 * time.Second):
fmt.Fprintln(w, "İşlem tamamlandı")
case <-ctx.Done():
err := ctx.Err()
fmt.Println("İstek iptal edildi veya zaman aşımı doldu:", err)
}
}
Burada, bağlam, müşteri bağlantıyı keserse veya zaman aşımı geçerse uzun süren bir işlemi iptal etmeyi sağlar, bu da kaynak tasarrufu sağlar ve uygulamanın yanıt verme kabiliyetini artırır.