Функция time.Tick
Функция time.Tick создает новый канал типа <-chan time.Time,
который будет отправлять текущее время через равные промежутки времени.
В единственный параметр функция принимает значение типа time.Duration,
которое определяет интервал между сигналами. Функция удобна для выполнения
действий с заданной периодичностью, но следует помнить, что созданный
тикер нельзя остановить, поэтому для долгоживущих приложений лучше
использовать time.NewTicker.
Синтаксис
time.Tick(d)
Пример
Давайте создадим канал, который будет отправлять сигнал каждые 500 миллисекунд:
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.Tick(500 * time.Millisecond)
for i := 0; i < 5; i++ {
t := <-ticker
fmt.Println(t)
}
}
Результат выполнения кода:
"2026-09-04 15:00:00.123456 +0300 MSK m=+0.500123456"
"2026-09-04 15:00:00.623456 +0300 MSK m=+1.000123456"
"2026-09-04 15:00:01.123456 +0300 MSK m=+1.500123456"
"2026-09-04 15:00:01.623456 +0300 MSK m=+2.000123456"
"2026-09-04 15:00:02.123456 +0300 MSK m=+2.500123456"
Пример
Давайте используем тикер для выполнения действия каждую секунду в течение 3 секунд:
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.Tick(1 * time.Second)
for i := 0; i < 3; i++ {
<-ticker
fmt.Println("Tick", i+1)
}
}
Результат выполнения кода:
"Tick 1"
"Tick 2"
"Tick 3"
Пример
Давайте используем тикер с интервалом 2 секунды для вывода текущего времени:
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.Tick(2 * time.Second)
for i := 0; i < 3; i++ {
t := <-ticker
fmt.Println("Current time:", t.Format("15:04:05"))
}
}
Результат выполнения кода:
"Current time: 15:00:02"
"Current time: 15:00:04"
"Current time: 15:00:06"
Смотрите также
-
функцию
time.NewTicker,
которая создает управляемый тикер с возможностью остановки -
функцию
time.After,
которая создает канал для однократного сигнала через заданное время -
функцию
time.Sleep,
которая приостанавливает выполнение на заданный интервал -
функцию
time.Duration,
которая представляет собой интервал времени в наносекундах