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

Функция flag.NArg

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

Синтаксис

flag.NArg() int

Функция flag.NArg не принимает никаких параметров и возвращает целое число (int) - количество позиционных аргументов.

Пример

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

package main import ( "flag" "fmt" ) func main() { flag.Parse() count := flag.NArg() fmt.Printf("count: %d", count) }

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

"count: 2"

Пример

Функция flag.NArg возвращает только количество позиционных аргументов, игнорируя переданные флаги. Давайте проверим это на примере с флагами:

package main import ( "flag" "fmt" ) func main() { var name string flag.StringVar(&name, "name", "", "user name") flag.Parse() fmt.Printf("args: %d\n", flag.NArg()) fmt.Printf("name: %s", name) }

Результат выполнения кода с аргументами "-name=John arg1 arg2":

"args: 2" "name: John"

Пример

Часто flag.NArg используют для проверки количества аргументов перед их обработкой. Рассмотрим пример с валидацией:

package main import ( "flag" "fmt" "os" ) func main() { flag.Parse() if flag.NArg() < 2 { fmt.Println("need at least 2 arguments") os.Exit(1) } fmt.Printf("arguments: %v", flag.Args()) }

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

"arguments: [arg1 arg2]"

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

"need at least 2 arguments"

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

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