Ce face os.LookupEnv
os.LookupEnv returnează valoarea și un bool. Al doilea rezultat este true dacă variabila este setată, chiar și la textul gol. Așa poți deosebi „setată, dar goală” de „lipsă”, ceea ce os.Getenv nu poate.
Parametri
| Parametru | Descriere |
|---|---|
key |
Numele variabilei. |
Ce returnează
Valoarea și true dacă variabila există; "" și false dacă nu.
Exemple
Exemplul 1: Goală față de lipsă
package main
import (
"fmt"
"os"
)
func main() {
os.Setenv("PREFIX", "")
for _, nume := range []string{"PREFIX", "SUFIX"} {
v, ok := os.LookupEnv(nume)
fmt.Printf("%s: valoare=%q există=%v\n", nume, v, ok)
}
}
Rezultat
PREFIX: valoare="" există=true
SUFIX: valoare="" există=false
Exemplul 2: Variabilă obligatorie
package main
import (
"fmt"
"os"
)
func main() {
os.Setenv("DB_HOST", "localhost")
for _, nume := range []string{"DB_HOST", "DB_PAROLA"} {
if _, ok := os.LookupEnv(nume); !ok {
fmt.Println("lipsește variabila obligatorie", nume)
continue
}
fmt.Println(nume, "este setată")
}
}
Rezultat
DB_HOST este setată
lipsește variabila obligatorie DB_PAROLA
Greșeli frecvente
- Folosești
LookupEnvși verifici doar valoarea, ignorândok. Atunci e la fel caGetenv.
Comenzi înrudite
os.Getenv: Returnează valoarea unei variabile de mediu sau textul gol dacă variabila nu există.os.Setenv: Setează o variabilă de mediu pentru programul curent; Unsetenv o șterge.os.Environ: Returnează toate variabilele de mediu, ca o listă de texte de forma NUME=valoare.