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