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

Функция flag.Arg

Функция flag.Arg возвращает аргумент командной строки по указанному индексу. В отличие от flag.Args, которая возвращает все не флаговые аргументы в виде слайса, эта функция позволяет получить конкретный аргумент по его порядковому номеру. Индексация начинается с нуля. Если аргумента с указанным индексом не существует, функция возвращает пустую строку. Первым параметром функция принимает индекс аргумента.

Синтаксис

flag.Arg(index)

Пример

Давайте получим первый аргумент командной строки и выведем его на экран. Запустим программу с командой go run main.go first second third:

package main import ( "flag" "fmt" ) func main() { flag.Parse() arg := flag.Arg(0) fmt.Printf("First argument: %s", arg) }

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

"First argument: first"

Пример

Давайте получим все аргументы по отдельности, используя flag.Arg. Запустим программу с командой go run main.go a b c d e:

package main import ( "flag" "fmt" ) func main() { flag.Parse() for i := 0; i < 5; i++ { fmt.Printf("arg[%d]: %s\n", i, flag.Arg(i)) } }

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

"arg[0]: a" "arg[1]: b" "arg[2]: c" "arg[3]: d" "arg[4]: e"

Пример

Попробуем получить аргумент по несуществующему индексу. Запустим программу с командой go run main.go hello:

package main import ( "flag" "fmt" ) func main() { flag.Parse() arg := flag.Arg(10) if arg == "" { fmt.Println("Argument not found") } else { fmt.Printf("Found: %s", arg) } }

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

"Argument not found"

Пример

Рассмотрим работу flag.Arg с флагами. При наличии объявленных флагов, аргументы возвращаются только для не флаговых значений. Запустим программу с командой go run main.go -name=John first second:

package main import ( "flag" "fmt" ) func main() { name := flag.String("name", "default", "user name") flag.Parse() fmt.Printf("Name: %s\n", *name) fmt.Printf("Arg[0]: %s\n", flag.Arg(0)) fmt.Printf("Arg[1]: %s\n", flag.Arg(1)) }

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

"Name: John" "Arg[0]: first" "Arg[1]: second"

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

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