Как работать с конфигурациями и флагами командной строки в Go

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

goфлагиконфигурация

👁 В большинстве реальных проектов с Go часто необходимо настраивать параметры через командную строку. Вместо того чтобы жёстко кодировать параметры, лучше использовать флаги для их гибкой настройки. Это улучшает поддержку и масштабируемость проекта.

📝 Пример кода, который позволяет работать с конфигурационными флагами:

package main

import (
    "fmt"
    "os"
    "flag"
)

func main() {
    // Объявляем флаги
    host := flag.String("host", "localhost", "Host address")
    port := flag.Int("port", 8080, "Port number")
    debug := flag.Bool("debug", false, "Enable debug mode")

    // Парсим флаги
    flag.Parse()

    // Выводим полученные параметры
    fmt.Printf("Server starting on %s:%d\n", *host, *port)
    if *debug {
        fmt.Println("Debug mode is enabled")
    }
}

🔎 Что делает этот код:

— Определение флагов:

  • host - строковый флаг для указания адреса хоста (по умолчанию localhost)
  • port - целочисленный флаг для указания порта (по умолчанию 8080)
  • debug - булевый флаг для включения или выключения режима отладки

— Парсинг флагов: с помощью функции flag.Parse() происходит парсинг флагов из командной строки

— Вывод конфигурации: после парсинга флагов выводится информация о сервере и режиме отладки

📌 Этот подход полезен, если проект требует гибкой настройки параметров при запуске (например, указание хоста, порта, режима отладки и т. п.).

❗️ Подходит для любого проекта на Go, где есть необходимость в настройке параметров командной строки. Для серверных приложений, микросервисов или любых приложений, где необходимо получать параметры конфигурации от пользователя.

tags: #go #разработка #полезно

❤️ @recura_tech

Тёмный скриншот с примером кода на Go (фрагмент main, объявление флагов host/port/debug), виден логотип RECURA и оформление в стиле технической иллюстрации.
Скриншот примера кода на Go и бренд RECURA на тёмном фоне.

Читайте так же