Ce face int.fromEnvironment
int.fromEnvironment citește o valoare de configurare transmisă la compilare cu opțiunea -D: dart run -DPORT=8080 main.dart sau dart compile exe -DPORT=8080 main.dart. Dacă numele nu a fost dat sau valoarea nu este un întreg, primești defaultValue (implicit 0).
Trebuie folosit ca constructor const: const port = int.fromEnvironment('PORT', defaultValue: 80);. Fără const nu este garantat să funcționeze (pe web și în programele compilate aruncă eroare). Există și variantele bool.fromEnvironment și String.fromEnvironment.
Nu confunda cu variabilele de mediu ale sistemului (Platform.environment din dart:io), care se citesc în timpul rulării.
Parametri
| Parametru | Descriere |
|---|---|
name |
Numele declarației -D. |
defaultValue |
Valoarea folosită dacă numele lipsește sau nu e întreg valid. |
Ce returnează
Un int constant.
Exemple
Exemplul 1: Configurare cu valori implicite
Exemplul rulează fără -D, așa că se afișează valorile implicite.
const port = int.fromEnvironment('PORT', defaultValue: 8080);
const incercari = int.fromEnvironment('INCERCARI', defaultValue: 3);
const oras = String.fromEnvironment('ORAS', defaultValue: 'Iași');
const depanare = bool.fromEnvironment('DEPANARE');
void main() {
print('Port: $port');
print('Încercări: $incercari');
print('Oraș: $oras');
print('Depanare: $depanare');
}
Rezultat
Port: 8080
Încercări: 3
Oraș: Iași
Depanare: false
Exemplul 2: Același program, rulat cu -D
În terminal dai valorile la pornire. Rezultatul de mai jos este cel al comenzii dart run -DPORT=3000 -DDEPANARE=true main.dart.
const port = int.fromEnvironment('PORT', defaultValue: 8080);
const depanare = bool.fromEnvironment('DEPANARE');
void main() {
print('Pornesc serverul pe portul $port');
if (depanare) print('Mod depanare activ');
}
Rezultat (cu -DPORT=3000 -DDEPANARE=true)
Pornesc serverul pe portul 3000
Mod depanare activ
Greșeli frecvente
- Scrii
var port = int.fromEnvironment('PORT');fărăconst. Pe web sau în executabile compilate aruncă eroare; folosește mereuconst. - Pui
-Ddupă numele fișierului:dart run main.dart -DPORT=3000. Atunci devine argument al programului. Opțiunea trebuie dată înaintea fișierului.
Comenzi înrudite
int: Tipul pentru numere întregi (fără zecimale): vârste, cantități, note, indici.bool.parse: Transformă textul „true” sau „false” în valoarea bool; tryParse returnează null pentru orice alt text.