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

Функция flag.PrintDefaults

Функция flag.PrintDefaults выводит в стандартный вывод (stdout) список всех зарегистрированных флагов командной строки с их описаниями и значениями по умолчанию. Она не принимает никаких параметров и не возвращает значений. Информация выводится в формате, который используется при автоматической генерации справки через flag.Usage. Функция полезна для отладки и для явного вывода справки по флагам в нужный момент выполнения программы.

Синтаксис

flag.PrintDefaults()

Пример

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

package main import ( "flag" "fmt" ) func main() { name := flag.String("name", "default", "user name") age := flag.Int("age", 0, "user age") active := flag.Bool("active", false, "is user active") flag.PrintDefaults() }

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

-active is user active (default false) -age int user age (default 0) -name string user name (default "default")

Пример

Давайте выведем значения по умолчанию после парсинга флагов, чтобы показать, что информация не зависит от переданных аргументов:

package main import ( "flag" "fmt" "os" ) func main() { port := flag.Int("port", 8080, "server port") timeout := flag.Duration("timeout", 30, "timeout in seconds") verbose := flag.Bool("verbose", false, "enable verbose output") flag.Parse() fmt.Println("Parsed flags:") fmt.Printf("port: %d\n", *port) fmt.Printf("timeout: %v\n", *timeout) fmt.Printf("verbose: %t\n", *verbose) fmt.Println("\nDefault values:") flag.PrintDefaults() }

При запуске с аргументами -port=9090 -verbose=true результат выполнения кода:

Parsed flags: port: 9090 timeout: 30s verbose: true Default values: -port int server port (default 8080) -timeout duration timeout in seconds (default 30s) -verbose enable verbose output (default false)

Пример

Давайте используем flag.PrintDefaults внутри пользовательской функции для вывода справки:

package main import ( "flag" "fmt" "os" ) func main() { host := flag.String("host", "localhost", "server hostname") port := flag.Int("port", 8080, "server port") debug := flag.Bool("debug", false, "enable debug mode") flag.Usage = func() { fmt.Println("Usage: program [options]") flag.PrintDefaults() } if len(os.Args) > 1 && os.Args[1] == "-h" { flag.Usage() return } flag.Parse() fmt.Printf("Running on %s:%d (debug: %t)\n", *host, *port, *debug) }

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

Usage: program [options] -debug enable debug mode (default false) -host string server hostname (default "localhost") -port int server port (default 8080)

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

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