Функция flag.BoolVar

Функция flag.BoolVar предназначена для связывания флага командной строки с уже существующей переменной типа bool. В первый параметр она принимает указатель на переменную, во второй - имя флага, в третий - значение по умолчанию, в четвертый - текст описания флага.

Синтаксис

goflag.BoolVar(ptr *bool, name string, value bool, usage string)

Пример

Давайте создадим флаг -debug, который будет управлять режимом отладки программы:

gopackage main

import (
  "flag"
  "fmt"
)

func main() {
  var debug bool

  flag.BoolVar(&debug, "debug", false, "enable debug mode")
  flag.Parse()

  fmt.Printf("debug mode: %t", debug)
}

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

go"debug mode: false"

Пример

Рассмотрим пример с двумя флагами типа bool:

gopackage main

import (
  "flag"
  "fmt"
)

func main() {
  var verbose bool
  var quiet bool

  flag.BoolVar(&verbose, "v", false, "verbose output")
  flag.BoolVar(&quiet, "q", false, "quiet mode")
  flag.Parse()

  if verbose {
    fmt.Println("verbose mode enabled")
  }

  if quiet {
    fmt.Println("quiet mode enabled")
  }
}

Результат выполнения кода с флагами -v -q:

go"verbose mode enabled"
"quiet mode enabled"

Пример

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

gopackage main

import (
  "flag"
  "fmt"
)

func main() {
  var enableFeature bool

  flag.BoolVar(&enableFeature, "feature", false, "enable experimental feature")
  flag.Parse()

  if enableFeature {
    fmt.Println("experimental feature is active")
  } else {
    fmt.Println("experimental feature is disabled")
  }
}

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

go"experimental feature is active"

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

  • функцию flag.Bool,
    которая возвращает указатель на значение флага
  • функцию flag.StringVar,
    которая связывает флаг с переменной типа string
  • функцию flag.IntVar,
    которая связывает флаг с переменной типа int
  • функцию flag.Parse,
    которая обрабатывает флаги командной строки