Go за Прикладом: Змінні середовища

Змінніні середовища це універсальний спосіб передачі конфігурацій програмам, що працюють у середовищі Unix. Давайте розглянемо як створювати, отримувати та показувати ці змінні.

package main
import (
    "fmt"
    "os"
    "strings"
)
func main() {

Ми можемо скористатись os.Setenv для встановлення пар ключ/значення і os.Getenv для отримання значення по ключу (в разі якщо ключ не буде знайдено - повернеться пустий рядок).

    os.Setenv("FOO", "1")
    fmt.Println("FOO:", os.Getenv("FOO"))
    fmt.Println("BAR:", os.Getenv("BAR"))

os.Environ поверне зріз усіх змінних середовища, у вигляді KEY=value (який ви надалі можете розділити на частини скориставшись strings.Split). В даному прикладі, ми лише виведемо назви ключів змінних.

    fmt.Println()
    for _, e := range os.Environ() {
        pair := strings.Split(e, "=")
        fmt.Println(pair[0])
    }
}

Запуск програми показує FOO матиме значення 1 (бо ми встановили його), BAR не матиме жодного значення, бо воно відсутнє в середовищі.

$ go run environment-variables.go
FOO: 1
BAR:

Перелік ключів змінних середовища залежить від власне машини на якій код запускається.

TERM_PROGRAM
PATH
SHELL
...
FOO

Якщо ми встановимо BAR в середовищі напередодні запуску, програма що запуститься слідом матиме змогу доступ до цієї зміннної.

$ BAR=2 go run environment-variables.go
FOO: 1
BAR: 2
...

Наступний приклад: Logging.