Sobes.tech
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.