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.