int în Dart

Tipul pentru numere întregi (fără zecimale): vârste, cantități, note, indici.

Sintaxă
abstract final class int extends num
bool get isNegative

Ce face int

int ține numere întregi: 21, -5, 0, 0xFF (hexazecimal). Pe mașina virtuală Dart și în aplicațiile native are 64 de biți, deci valori între −9 223 372 036 854 775 808 și 9 223 372 036 854 775 807. Când compilezi pentru web, întregii devin numere JavaScript și sunt exacte doar până la 253.

Operațiile de bază: +, -, *, ~/ (împărțire întreagă, rezultat int), % (restul, mereu pozitiv) și /, care dă mereu un double: 7 / 2 este 3.5. Dacă depășești limita de 64 de biți, valoarea „se întoarce” (overflow) fără eroare; pentru numere uriașe folosește BigInt.

Proprietatea isNegative spune dacă numărul este mai mic decât zero. int moștenește din num și metodele comune cu double (abs, clamp, compareTo, toString).

Ce returnează

isNegative: true pentru numere mai mici ca 0.

Exemple

Exemplul 1: Operații cu întregi

Observă diferența dintre / (rezultat double) și ~/ (rezultat int).

void main() {
  int mere = 17;
  int copii = 5;
  print(mere ~/ copii);
  print(mere % copii);
  print(mere / copii);
  print(0xFF);
  print(1000000 * 1000);
  print((-3).isNegative);
  print(0.isNegative);
}

Rezultat

3
2
3.4
255
1000000000
true
false

Exemplul 2: Limitele lui int pe 64 de biți

Adunarea peste valoarea maximă trece la cea minimă (overflow), fără nicio eroare.

void main() {
  var maxim = 9223372036854775807;
  print(maxim);
  print(maxim + 1);
  print(maxim.bitLength);
}

Rezultat

9223372036854775807
-9223372036854775808
63

Greșeli frecvente

  • Scrii int medie = suma / 3;. Operatorul / dă un double, iar codul nu compilează. Folosește suma ~/ 3 sau declară double.
  • Te aștepți la o eroare la overflow. Dart nu verifică depășirea pentru int; pentru sume foarte mari folosește BigInt.

Comenzi înrudite

  • int.parse: Transformă un text în număr întreg; parse aruncă FormatException la text greșit, tryParse returnează null.
  • int.isEven: Spune dacă un întreg este par (isEven) sau impar (isOdd).
  • double: Tipul pentru numere cu zecimale (virgulă mobilă, 64 de biți): prețuri, medii, temperaturi.
  • num: Tipul comun pentru int și double: o variabilă num poate ține orice număr.
  • BigInt: Numere întregi oricât de mari, fără depășire; BigInt.from transformă un int, BigInt.one este valoarea 1.