Junior — Middle
Care este scopul metodei Done în contextul dezvoltării software?
sobes.tech AI
Răspuns de la AI
În Go, metoda Done este de obicei asociată cu contextul (context.Context) și este utilizată pentru a semnala finalizarea unei operații sau anularea acesteia. Când se apelează metoda Done(), aceasta returnează un canal care se închide atunci când operația trebuie să fie întreruptă (de exemplu, din cauza unui timeout sau anulare). Acest lucru permite gorutinelor să asculte acest canal și să se încheie corect.
Exemplu de utilizare:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
fmt.Println("Operație anulată")
return
// alte cazuri
}
}()
// mai târziu
cancel() // semnalizarea finalizării
Astfel, metoda Done ajută la gestionarea duratei de viață a operațiilor și la prevenirea scurgerilor de resurse.