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

Функция flag.Bool

Функция flag.Bool определяет булев флаг командной строки. Она принимает три параметра: имя флага (строку), значение по умолчанию (тип bool) и описание флага (строку). Функция возвращает указатель на bool, который будет содержать значение флага после вызова flag.Parse. Булевы флаги не требуют явного значения - их присутствие в командной строке устанавливает флаг в true.

Синтаксис

flag.Bool(name, value, usage)

где:

  • name - имя флага (строка)
  • value - значение по умолчанию (bool)
  • usage - описание флага (строка)

Пример с булевым флагом

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

package main import ( "flag" "fmt" ) func main() { verbose := flag.Bool("verbose", false, "enable verbose output") flag.Parse() if *verbose { fmt.Println("Verbose mode enabled") } else { fmt.Println("Verbose mode disabled") } }

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

"Verbose mode disabled"

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

go run main.go -verbose "Verbose mode enabled"

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

go run main.go -verbose=true "Verbose mode enabled"

Пример с несколькими булевыми флагами

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

package main import ( "flag" "fmt" ) func main() { verbose := flag.Bool("verbose", false, "enable verbose output") debug := flag.Bool("debug", false, "enable debug mode") quiet := flag.Bool("quiet", false, "suppress all output") flag.Parse() if *quiet { fmt.Println("quiet mode: no output") } else if *debug { fmt.Println("debug mode enabled") } else if *verbose { fmt.Println("verbose mode enabled") } else { fmt.Println("normal mode") } }

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

go run main.go -verbose -debug "debug mode enabled"

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

go run main.go -quiet "quiet mode: no output"

Пример с проверкой значения флага

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

package main import ( "flag" "fmt" ) func main() { enableFeature := flag.Bool("enable", true, "enable feature X") flag.Parse() if *enableFeature { fmt.Println("feature X is enabled") // выполнение логики с включенной функцией } else { fmt.Println("feature X is disabled") // выполнение логики с отключенной функцией } }

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

"feature X is enabled"

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

go run main.go -enable=false "feature X is disabled"

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

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