Назад к вопросам
Junior — Middle
85
Можете объяснить механизм работы функции 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 или просто читать из него, чтобы реализовать задержку или таймаут.