Функция flag.Parse
Функция flag.Parse выполняет разбор аргументов командной строки в соответствии с определенными флагами. Она должна вызываться после объявления всех флагов с помощью функций типа flag.String, flag.Int, flag.Bool и других, но до использования значений флагов. При вызове происходит анализ фактических аргументов командной строки (содержатся в os.Args), начиная со второго элемента, и установка значений флагов. Если встречается флаг, который не был объявлен, функция выводит сообщение об ошибке и завершает программу с кодом 2. После успешного разбора значения флагов становятся доступными через указатели, переданные в функции объявления флагов.
Синтаксис
flag.Parse()
Пример
Давайте объявим строковый флаг "name" со значением по умолчанию "world", разберем аргументы командной строки и выведем значение флага:
package main
import (
"flag"
"fmt"
)
func main() {
var name string
flag.StringVar(&name, "name", "world", "specify the name")
flag.Parse()
fmt.Printf("Hello, %s!\n", name)
}
Если запустить программу без аргументов, результат будет:
"Hello, world!"
Пример
Запустим программу с флагом -name=Alice:
go run main.go -name=Alice
Результат выполнения:
"Hello, Alice!"
Пример
Объявим флаги разных типов: строковый, целочисленный и булев:
package main
import (
"flag"
"fmt"
)
func main() {
name := flag.String("name", "user", "user name")
age := flag.Int("age", 18, "user age")
active := flag.Bool("active", false, "is user active")
flag.Parse()
fmt.Printf("Name: %s, Age: %d, Active: %t\n", *name, *age, *active)
}
Запустим с аргументами:
go run main.go -name=Bob -age=30 -active
Результат выполнения:
"Name: Bob, Age: 30, Active: true"
Смотрите также
-
функцию
flag.String,
которая объявляет строковый флаг -
функцию
flag.Int,
которая объявляет целочисленный флаг -
функцию
flag.Bool,
которая объявляет булев флаг -
функцию
flag.Float64,
которая объявляет флаг с плавающей точкой