Sobes.tech
Junior — Middle

Aký je účel metódy Done v kontexte vývoja softvéru?

sobes.tech AI

Odpoveď od AI

V Go je metóda Done zvyčajne spojená s kontextom (context.Context) a slúži na signalizáciu ukončenia operácie alebo jej zrušenia. Keď sa zavolá metóda Done(), vráti kanál, ktorý sa zatvorí, keď má byť operácia prerušená (napríklad kvôli timeoutu alebo zrušeniu). To umožňuje gorutinám sledovať tento kanál a správne ukončiť prácu.

Príklad použitia:

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

go func() {
    select {
    case <-ctx.Done():
        fmt.Println("Operácia zrušená")
        return
    // iné prípady
    }
}()

// neskôr
cancel() // signál na ukončenie

Týmto spôsobom pomáha metóda Done riadiť životnosť operácií a predchádzať únikom zdrojov.