Функция flag.IntVar
Функция flag.IntVar связывает существующую переменную типа int с флагом командной строки.
В отличие от функции flag.Int, которая возвращает указатель на новую переменную,
эта функция использует уже объявленную переменную.
Первый параметр принимает указатель на целочисленную переменную,
второй параметр - имя флага,
третий параметр - значение по умолчанию,
четвертый параметр - описание флага для вывода справки.
Синтаксис
flag.IntVar(ptr *int, name string, value int, usage string)
Пример
Давайте создадим простой флаг для числа повторений:
package 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:
"Hello"
"Hello"
"Hello"
"Hello"
"Hello"
Пример
Давайте используем флаг для настройки порта сервера:
package 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:
"Starting server on port: 9000"
Пример
Давайте используем несколько флагов с разными типами данных:
package 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:
"Running 3 operations"
"Operation 1 completed"
"Operation 2 completed"
"Operation 3 completed"
Смотрите также
-
функцию
flag.Int,
которая возвращает указатель на новую переменную -
функцию
flag.StringVar,
которая связывает строковую переменную с флагом -
функцию
flag.BoolVar,
которая связывает логическую переменную с флагом -
функцию
flag.Parse,
которая разбирает переданные аргументы командной строки