Sobes.tech
Junior — Middle

Jaký je účel metody Done v kontextu vývoje softwaru?

sobes.tech AI

Odpověď od AI

V Go je metoda Done obvykle spojena s kontextem (context.Context) a používá se k signalizaci ukončení operace nebo jejího zrušení. Když se zavolá metoda Done(), vrací kanál, který se uzavře, když má být operace přerušena (například kvůli časovému limitu nebo zrušení). To umožňuje gorutinám sledovat tento kanál a správně ukončit práci.

Příklad použití:

ctx, cancel := context.WithCancel(context.Background())

go func() {
    select {
    case <-ctx.Done():
        fmt.Println("Operace zrušena")
        return
    // jiné případy
    }
}()

// někdy později
cancel() // signál k ukončení

Tímto způsobem metoda Done pomáhá řídit životnost operací a předcházet únikům zdrojů.