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

Метод time.Ticker.Reset

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

Синтаксис

ticker.Reset(d)

Пример

Создадим тикер с периодом 200 миллисекунд, затем через 500 миллисекунд изменим интервал на 100 миллисекунд с помощью Reset:

package main import ( "fmt" "time" ) func main() { ticker := time.NewTicker(200 * time.Millisecond) defer ticker.Stop() go func() { time.Sleep(500 * time.Millisecond) ok := ticker.Reset(100 * time.Millisecond) fmt.Println("Reset called, active:", ok) }() count := 0 for range ticker.C { count++ fmt.Println("Tick", count) if count >= 6 { break } } }

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

"Tick 1" "Tick 2" "Reset called, active: true" "Tick 3" "Tick 4" "Tick 5" "Tick 6"

Пример

Если вызвать Reset на остановленном тикере, метод вернет false, но при этом тикер будет перезапущен с новым интервалом:

package main import ( "fmt" "time" ) func main() { ticker := time.NewTicker(500 * time.Millisecond) ticker.Stop() ok := ticker.Reset(200 * time.Millisecond) fmt.Println("Reset after Stop, active:", ok) count := 0 for range ticker.C { count++ fmt.Println("Tick", count) if count >= 3 { break } } }

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

"Reset after Stop, active: false" "Tick 1" "Tick 2" "Tick 3"

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

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