Функция flag.Uint64
Функция flag.Uint64 объявляет флаг командной строки с типом uint64.
Она принимает три параметра: имя флага, значение по умолчанию и описание флага.
Функция возвращает указатель на переменную типа *uint64, в которую после вызова
flag.Parse будет записано значение, переданное в командной строке.
Если флаг не указан, используется значение по умолчанию.
Синтаксис
flag.Uint64(name string, value uint64, usage string) *uint64
Пример
Давайте объявим флаг timeout с типом uint64 и значением по умолчанию 30.
Затем разберем командную строку и выведем значение флага:
package main
import (
"flag"
"fmt"
)
func main() {
timeout := flag.Uint64("timeout", 30, "timeout in seconds")
flag.Parse()
fmt.Println(*timeout)
}
Если запустить программу с флагом:
"go run main.go -timeout 60"
Результат выполнения кода:
60
Если запустить программу без флага, будет использовано значение по умолчанию:
"go run main.go"
Результат выполнения кода:
30
Пример с несколькими флагами
Давайте объявим два флага типа uint64: port и timeout.
После разбора командной строки выведем их значения:
package main
import (
"flag"
"fmt"
)
func main() {
port := flag.Uint64("port", 8080, "server port")
timeout := flag.Uint64("timeout", 30, "timeout in seconds")
flag.Parse()
fmt.Printf("port: %d, timeout: %d", *port, *timeout)
}
Запустим программу с флагами:
"go run main.go -port 9090 -timeout 120"
Результат выполнения кода:
"port: 9090, timeout: 120"
Обработка ошибок
Если в командной строке передано некорректное значение для флага типа uint64,
например, отрицательное число или нечисловое значение, программа выведет сообщение
об ошибке и завершится:
package main
import (
"flag"
"fmt"
)
func main() {
timeout := flag.Uint64("timeout", 30, "timeout in seconds")
flag.Parse()
fmt.Println(*timeout)
}
Запустим программу с некорректным значением:
"go run main.go -timeout -10"
Результат выполнения кода:
"invalid value \"-10\" for flag -timeout: parse error"
Смотрите также
-
функцию
flag.Uint,
которая объявляет флаг командной строки типа uint -
функцию
flag.Int64,
которая объявляет флаг командной строки типа int64 -
функцию
flag.String,
которая объявляет флаг командной строки типа string -
функцию
flag.Parse,
которая разбирает командную строку и заполняет объявленные флаги