Функция flag.DurationVar
Функция flag.DurationVar используется для привязки значения флага командной строки к переменной типа time.Duration. В первый параметр передается указатель на переменную, которая будет хранить значение. Во второй параметр передается имя флага (строка). Третий параметр — значение по умолчанию. Четвертый параметр — описание флага (используется в справке). После вызова функции и вызова flag.Parse, переменная будет содержать значение интервала времени, переданное пользователем.
Синтаксис
flag.DurationVar(ptr, name, value, usage)
Пример
Давайте создадим программу, которая принимает флаг -timeout и выводит его значение:
package main
import (
"flag"
"fmt"
"time"
)
func main() {
var timeout time.Duration
flag.DurationVar(&timeout, "timeout", 5*time.Second, "timeout duration")
flag.Parse()
fmt.Println(timeout)
}
Результат выполнения программы без дополнительных флагов:
"5s"
Если запустить программу с флагом:
go run main.go -timeout 10s
Результат выполнения программы:
"10s"
Пример
Рассмотрим пример, где используются несколько флагов разного типа. Создадим программу с флагами -timeout и -interval:
package main
import (
"flag"
"fmt"
"time"
)
func main() {
var timeout time.Duration
var interval time.Duration
flag.DurationVar(&timeout, "timeout", 30*time.Second, "timeout for operation")
flag.DurationVar(&interval, "interval", 5*time.Minute, "interval between checks")
flag.Parse()
fmt.Printf("Timeout: %s, Interval: %s\n", timeout, interval)
}
Запустим программу с указанными флагами:
go run main.go -timeout 1m30s -interval 10m
Результат выполнения программы:
"Timeout: 1m30s, Interval: 10m0s"
Смотрите также
-
функцию
flag.Duration,
которая возвращает указатель на значение флага длительности -
функцию
flag.StringVar,
которая привязывает флаг к строковой переменной -
функцию
flag.IntVar,
которая привязывает флаг к целочисленной переменной -
функцию
flag.BoolVar,
которая привязывает флаг к логической переменной