Sobes.tech
Junior — Middle

Koja je uloga i svrha konteksta u programskom jeziku Go?

sobes.tech АИ

Одговор од АИ

У језику Go, контекст (context.Context) се користи за управљање временом трајања операција, пренос сигнала за отказивање и пренос вредности између горутинa и функција.

Главни задаци контекста:

  • Отказивање операција: омогућава отказивање дуготрајних или блокирајућих операција, на пример, у случају истека времена или отказа захтева.
  • Пренос рокова: може се поставити време након којег операција треба аутоматски да се прекине.
  • Пренос вредности: омогућава пренос података везаних за захтев или операцију, као што су идентификатори корисника, токени итд.

Пример употребе:

ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()

// Преносимо ctx у функцију која извршава дугу операцију
result, err := LongOperation(ctx)
if err == context.DeadlineExceeded {
    fmt.Println("Операција је прекинута због истека рока")
}

Контекст помаже у писању боље управљивог и одзивног кода, посебно у мрежним и конкурентним апликацијама.