Функция time.Tick

Функция time.Tick создает новый канал типа <-chan time.Time, который будет отправлять текущее время через равные промежутки времени. В единственный параметр функция принимает значение типа time.Duration, которое определяет интервал между сигналами. Функция удобна для выполнения действий с заданной периодичностью, но следует помнить, что созданный тикер нельзя остановить, поэтому для долгоживущих приложений лучше использовать time.NewTicker.

Синтаксис

gotime.Tick(d)

Пример

Давайте создадим канал, который будет отправлять сигнал каждые 500 миллисекунд:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  ticker := time.Tick(500 * time.Millisecond)

  for i := 0; i < 5; i++ {
    t := <-ticker
    fmt.Println(t)
  }
}

Результат выполнения кода:

go"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 секунд:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  ticker := time.Tick(1 * time.Second)

  for i := 0; i < 3; i++ {
    <-ticker
    fmt.Println("Tick", i+1)
  }
}

Результат выполнения кода:

go"Tick 1"
"Tick 2"
"Tick 3"

Пример

Давайте используем тикер с интервалом 2 секунды для вывода текущего времени:

gopackage 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"))
  }
}

Результат выполнения кода:

go"Current time: 15:00:02"
"Current time: 15:00:04"
"Current time: 15:00:06"

Смотрите также

  • функцию time.NewTicker,
    которая создает управляемый тикер с возможностью остановки
  • функцию time.After,
    которая создает канал для однократного сигнала через заданное время
  • функцию time.Sleep,
    которая приостанавливает выполнение на заданный интервал
  • функцию time.Duration,
    которая представляет собой интервал времени в наносекундах