Junior — Middle
Jaki jest cel metody Done w kontekście rozwoju oprogramowania?
sobes.tech AI
Odpowiedź od AI
W Go, metoda Done jest zwykle powiązana z kontekstem (context.Context) i służy do sygnalizowania zakończenia operacji lub jej anulowania. Gdy wywołujemy metodę Done(), zwraca ona kanał, który jest zamykany, gdy operacja powinna zostać przerwana (np. z powodu limitu czasu lub anulowania). To pozwala gorutynom słuchać tego kanału i poprawnie kończyć pracę.
Przykład użycia:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
fmt.Println("Operacja anulowana")
return
// inne przypadki
}
}()
// gdzieś później
cancel() // sygnalizujemy zakończenie
W ten sposób metoda Done pomaga zarządzać czasem życia operacji i zapobiega wyciekom zasobów.