Функция os.LookupEnv
Функция os.LookupEnv получает значение переменной окружения по её имени. В отличие от функции os.Getenv, она возвращает два значения: само значение переменной и булево значение, которое указывает, существует ли переменная в окружении. Это позволяет отличить случай, когда переменная не установлена, от случая, когда она установлена в пустую строку. В первый параметр функция принимает имя переменной окружения в виде строки.
Синтаксис
os.LookupEnv(key)
Пример
Давайте получим значение переменной окружения 'USER' на системе Linux или macOS:
package main
import (
"fmt"
"os"
)
func main() {
res, ok := os.LookupEnv("USER")
fmt.Printf("Value: %s, Exists: %t", res, ok)
}
Результат выполнения кода:
Value: username, Exists: true
Пример
Давайте проверим, установлена ли переменная окружения 'MY_CUSTOM_VAR':
package main
import (
"fmt"
"os"
)
func main() {
res, ok := os.LookupEnv("MY_CUSTOM_VAR")
if !ok {
fmt.Println("Variable MY_CUSTOM_VAR is not set")
} else {
fmt.Printf("MY_CUSTOM_VAR = %s", res)
}
}
Результат выполнения кода:
Variable MY_CUSTOM_VAR is not set
Пример
Давайте покажем разницу между os.LookupEnv и os.Getenv, когда переменная установлена в пустую строку:
package main
import (
"fmt"
"os"
)
func main() {
os.Setenv("EMPTY_VAR", "")
lookupRes, lookupOk := os.LookupEnv("EMPTY_VAR")
getenvRes := os.Getenv("EMPTY_VAR")
fmt.Printf("LookupEnv: value='%s', ok=%t", lookupRes, lookupOk)
fmt.Printf("Getenv: value='%s'", getenvRes)
}
Результат выполнения кода:
LookupEnv: value='', ok=true
Getenv: value=''
Смотрите также
-
функцию
os.Getenv,
которая возвращает значение переменной окружения или пустую строку, если переменная не установлена -
функцию
os.Setenv,
которая устанавливает значение переменной окружения -
функцию
os.Unsetenv,
которая удаляет переменную окружения -
функцию
os.Environ,
которая возвращает копию всех переменных окружения