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

Функция flag.Duration

Функция flag.Duration определяет флаг командной строки с типом time.Duration. Она принимает три параметра: имя флага, значение по умолчанию и описание флага. Функция возвращает указатель на переменную типа time.Duration, в которую будет записано переданное значение. Длительность указывается в виде строки, например, "10s", "5m", "2h30m".

Синтаксис

flag.Duration(name, value, usage)

Пример

Давайте определим флаг "timeout" со значением по умолчанию "10s":

package main import ( "flag" "fmt" ) func main() { timeout := flag.Duration("timeout", 10*time.Second, "timeout duration") flag.Parse() fmt.Println(*timeout) }

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

"10s"

Пример

Давайте передадим в программу значение флага "timeout" равное "5m30s":

package main import ( "flag" "fmt" "time" ) func main() { timeout := flag.Duration("timeout", 10*time.Second, "timeout duration") flag.Parse() fmt.Printf("Timeout: %v, seconds: %v", *timeout, timeout.Seconds()) }

Запустим программу с флагом:

$ go run main.go -timeout=5m30s "Timeout: 5m30s, seconds: 330"

Пример

Используем флаг для установки интервала времени с проверкой значения:

package main import ( "flag" "fmt" "time" ) func main() { interval := flag.Duration("interval", 30*time.Second, "interval between checks") flag.Parse() if *interval < 5*time.Second { fmt.Println("Warning: interval is too short") } else { fmt.Printf("Interval set to %v\n", *interval) } }

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

$ go run main.go -interval=3s "Warning: interval is too short"

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

  • функцию flag.String,
    которая определяет флаг со строковым значением
  • функцию flag.Int,
    которая определяет флаг с целочисленным значением
  • функцию flag.Bool,
    которая определяет флаг с булевым значением
  • функцию flag.Float64,
    которая определяет флаг с числом с плавающей точкой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить