РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
734 of 1593 menu

Функция time.NewTimer

Функция time.NewTimer создает новый таймер, который отправит текущее время в свой канал C по истечении заданного интервала. В первый параметр функция принимает значение типа time.Duration, определяющее длительность ожидания перед срабатыванием таймера. Функция возвращает указатель на структуру time.Timer.

Синтаксис

time.NewTimer(duration)

Пример

Давайте создадим таймер, который сработает через 2 секунды:

package main import ( "fmt" "time" ) func main() { timer := time.NewTimer(2 * time.Second) // Ждем сигнал от таймера t := <-timer.C fmt.Println("Timer fired at:", t) }

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

"Timer fired at: 2024-01-15 12:34:56.789012345 +0300 MSK m=+2.000123456"

Пример

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

package main import ( "fmt" "time" ) func main() { timer := time.NewTimer(5 * time.Second) go func() { <-timer.C fmt.Println("Timer fired") }() time.Sleep(2 * time.Second) stopped := timer.Stop() if stopped { fmt.Println("Timer stopped") } }

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

"Timer stopped"

Пример

Давайте создадим таймер, который можно перезапустить с помощью метода Reset:

package main import ( "fmt" "time" ) func main() { timer := time.NewTimer(1 * time.Second) <-timer.C fmt.Println("First timer fired") // Перезапускаем таймер на 2 секунды timer.Reset(2 * time.Second) <-timer.C fmt.Println("Second timer fired") }

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

"First timer fired" "Second timer fired"

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

  • функцию time.After,
    которая возвращает канал, в который будет отправлено время через указанный интервал
  • функцию time.Sleep,
    которая приостанавливает выполнение горутины на заданное время
  • метод time.Timer.Stop,
    который останавливает таймер и предотвращает его срабатывание
  • метод time.Timer.Reset,
    который изменяет интервал таймера и запускает его заново
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить