Sobes.tech
Junior — Middle

Mi a szerepe és célja a kontextusnak a Go programozási nyelvben?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a (context.Context) kontextus a műveletek élettartamának kezelésére, megszakítási jelek továbbítására és értékek átadására szolgál goroutine-ok és függvények között.

A kontextus fő feladatai:

  • Műveletek megszakítása: lehetővé teszi hosszú vagy blokkoló műveletek megszakítását, például időtúllépés vagy kérés megszakítása esetén.
  • Határidők továbbítása: beállítható egy időpont, amely után a művelet automatikusan megszakad.
  • Értékek továbbítása: lehetővé teszi a kéréshez vagy művelethez kapcsolódó adatok, például felhasználói azonosítók, tokenek átadását.

Használati példa:

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

// A ctx átadása egy hosszú műveletet végző függvénynek
result, err := LongOperation(ctx)
if err == context.DeadlineExceeded {
    fmt.Println("A művelet időtúllépés miatt megszakadt")
}

A kontextus segít írni jobban kezelhető és gyorsan reagáló kódot, különösen hálózati és párhuzamos alkalmazásokban.