Функция flag.IntVar

Функция flag.IntVar связывает существующую переменную типа int с флагом командной строки. В отличие от функции flag.Int, которая возвращает указатель на новую переменную, эта функция использует уже объявленную переменную. Первый параметр принимает указатель на целочисленную переменную, второй параметр - имя флага, третий параметр - значение по умолчанию, четвертый параметр - описание флага для вывода справки.

Синтаксис

goflag.IntVar(ptr *int, name string, value int, usage string)

Пример

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

gopackage main

import (
  "flag"
  "fmt"
)

func main() {
  var count int
  flag.IntVar(&count, "count", 3, "number of repetitions")
  flag.Parse()

  for i := 0; i < count; i++ {
    fmt.Println("Hello")
  }
}

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

go"Hello"
"Hello"
"Hello"
"Hello"
"Hello"

Пример

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

gopackage main

import (
  "flag"
  "fmt"
)

func main() {
  var port int
  flag.IntVar(&port, "port", 8080, "server port")
  flag.Parse()

  fmt.Printf("Starting server on port: %d\n", port)
}

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

go"Starting server on port: 9000"

Пример

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

gopackage main

import (
  "flag"
  "fmt"
)

func main() {
  var count int
  var verbose bool

  flag.IntVar(&count, "count", 1, "number of operations")
  flag.BoolVar(&verbose, "verbose", false, "enable verbose output")

  flag.Parse()

  if verbose {
    fmt.Printf("Running %d operations\n", count)
  }

  for i := 0; i < count; i++ {
    fmt.Printf("Operation %d completed\n", i+1)
  }
}

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

go"Running 3 operations"
"Operation 1 completed"
"Operation 2 completed"
"Operation 3 completed"

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

  • функцию flag.Int,
    которая возвращает указатель на новую переменную
  • функцию flag.StringVar,
    которая связывает строковую переменную с флагом
  • функцию flag.BoolVar,
    которая связывает логическую переменную с флагом
  • функцию flag.Parse,
    которая разбирает переданные аргументы командной строки