Sobes.tech
Назад к вопросам
Junior — Middle
83

Можете объяснить механизм работы функции time.After в языке Go?

Ответ от нейросети

sobes.tech AI

Функция time.After в Go возвращает канал типа <-chan time.Time, который получает значение через заданный промежуток времени. По сути, она создает таймер, который по истечении указанного времени отправляет текущее время в этот канал. Это удобно для реализации таймаутов и задержек в горутинах.

Пример использования:

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("Ждем 2 секунды...")
    <-time.After(2 * time.Second) // блокируемся, пока не придет значение в канал
    fmt.Println("Прошло 2 секунды")
}

Внутри time.After создается таймер, который запускается и по истечении времени отправляет значение в канал. После этого канал можно использовать в select или просто читать из него, чтобы реализовать задержку или таймаут.