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

Метод time.Timer.Reset

Метод Timer.Reset позволяет изменить длительность ожидания уже существующего таймера. Он останавливает текущий отсчет и запускает таймер заново с новой длительностью. Метод возвращает true, если таймер был активен на момент вызова, и false, если таймер уже истек или был остановлен. Метод принимает один параметр - новую длительность типа time.Duration.

Синтаксис

timer.Reset(duration)

Пример

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

package main import ( "fmt" "time" ) func main() { timer := time.NewTimer(1 * time.Second) active := timer.Reset(2 * time.Second) fmt.Println(active) }

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

true

Пример

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

package main import ( "fmt" "time" ) func main() { timer := time.NewTimer(1 * time.Second) time.Sleep(2 * time.Second) active := timer.Reset(1 * time.Second) fmt.Println(active) }

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

false

Пример

Давайте используем Reset в сочетании с каналом таймера для создания повторяющихся действий с изменяемой задержкой:

package main import ( "fmt" "time" ) func main() { timer := time.NewTimer(1 * time.Second) for i := 0; i < 3; i++ { <-timer.C fmt.Println("tick", i) timer.Reset(1 * time.Second) } }

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

"tick 0" "tick 1" "tick 2"

Пример

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

package main import ( "fmt" "time" ) func main() { timer := time.NewTimer(500 * time.Millisecond) for i := 0; i < 5; i++ { <-timer.C fmt.Println("event", i) if i%2 == 0 { timer.Reset(300 * time.Millisecond) } else { timer.Reset(700 * time.Millisecond) } } }

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

"event 0" "event 1" "event 2" "event 3" "event 4"

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

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