Функция flag.BoolVar
Функция flag.BoolVar предназначена для связывания
флага командной строки с уже существующей переменной
типа bool. В первый параметр она принимает
указатель на переменную, во второй - имя флага,
в третий - значение по умолчанию, в четвертый -
текст описания флага.
Синтаксис
flag.BoolVar(ptr *bool, name string, value bool, usage string)
Пример
Давайте создадим флаг -debug, который будет управлять
режимом отладки программы:
package 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)
}
Результат выполнения кода без флагов:
"debug mode: false"
Пример
Рассмотрим пример с двумя флагами типа bool:
package 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:
"verbose mode enabled"
"quiet mode enabled"
Пример
Использование флага для управления логикой программы:
package 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:
"experimental feature is active"
Смотрите также
-
функцию
flag.Bool,
которая возвращает указатель на значение флага -
функцию
flag.StringVar,
которая связывает флаг с переменной типаstring -
функцию
flag.IntVar,
которая связывает флаг с переменной типаint -
функцию
flag.Parse,
которая обрабатывает флаги командной строки