int.fromEnvironment în Dart

Citește la compilare o constantă întreagă dată cu -D (dart run -DPORT=8080), cu o valoare implicită.

Sintaxă
const int.fromEnvironment(String name, {int defaultValue = 0})

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 mereu const.
  • Pui -D după 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.