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

Функция flag.NewFlagSet

Функция flag.NewFlagSet создает новый набор флагов командной строки. Она позволяет изолировать обработку флагов для разных подкоманд или модулей приложения. Первым параметром функция принимает имя набора флагов, которое будет отображаться в сообщениях об ошибках. Вторым параметром функция принимает режим обработки ошибок flag.ErrorHandling.

Синтаксис

flag.NewFlagSet(name, errorHandling)

Пример

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

package main import ( "flag" "fmt" ) func main() { fs := flag.NewFlagSet("myset", flag.ExitOnError) name := fs.String("name", "default", "user name") fs.Parse([]string{"-name", "john"}) fmt.Println(*name) }

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

"john"

Пример

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

package main import ( "flag" "fmt" ) func main() { fs := flag.NewFlagSet("app", flag.ContinueOnError) name := fs.String("name", "guest", "user name") age := fs.Int("age", 18, "user age") active := fs.Bool("active", false, "is active") fs.Parse([]string{"-name", "alice", "-age", "25", "-active"}) fmt.Printf("name: %s, age: %d, active: %t", *name, *age, *active) }

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

"name: alice, age: 25, active: true"

Пример

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

package main import ( "flag" "fmt" "os" ) func main() { if len(os.Args) < 2 { fmt.Println("expected subcommand") os.Exit(1) } switch os.Args[1] { case "serve": fs := flag.NewFlagSet("serve", flag.ExitOnError) port := fs.String("port", "8080", "server port") fs.Parse(os.Args[2:]) fmt.Printf("server running on port %s", *port) case "version": fmt.Println("app version 1.0.0") default: fmt.Println("unknown command") } }

Результат выполнения кода при запуске с параметрами "serve -port 9090":

"server running on port 9090"

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

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