max în Dart

max returnează cel mai mare dintre două numere, iar min pe cel mai mic; păstrează tipul argumentelor.

Sintaxă
import 'dart:math';

T max<T extends num>(T a, T b)
T min<T extends num>(T a, T b)

Ce face max

max(a, b) și min(a, b) din dart:math compară exact două numere. Sunt generice: dacă dai două int, primești un int; cu două double, un double.

Pentru o listă întreagă nu există max(lista): folosește lista.reduce(max) (funcția se poate da direct ca argument). Împreună, min și max limitează o valoare într-un interval: min(max(x, 1), 10); pentru asta există și metoda x.clamp(1, 10).

Dacă unul dintre argumente este NaN, rezultatul este NaN.

Parametri

Parametru Descriere
a, b Cele două numere comparate (de același tip).

Ce returnează

Numărul mai mare (max) sau mai mic (min).

Exemple

Exemplul 1: Două numere

import 'dart:math';

void main() {
  print(max(7, 12));
  print(min(7, 12));
  print(max(3.5, 2.25));
  print(min(-1, -8));
  final int cel = max(4, 9);
  print('Tip păstrat: $cel');
}

Rezultat

12
7
3.5
-8
Tip păstrat: 9

Exemplul 2: Cea mai mare și cea mai mică notă dintr-o listă

reduce aplică max pe rând între elemente, până rămâne o singură valoare.

import 'dart:math';

void main() {
  final note = [8, 10, 6, 9, 7];
  print('Nota maximă: ${note.reduce(max)}');
  print('Nota minimă: ${note.reduce(min)}');
}

Rezultat

Nota maximă: 10
Nota minimă: 6

Exemplul 3: Limitarea unei valori într-un interval

Volumul trebuie să rămână între 0 și 100, orice ar cere utilizatorul.

import 'dart:math';

int limiteaza(int valoare) => min(max(valoare, 0), 100);

void main() {
  for (final v in [-20, 45, 130]) {
    print('$v -> ${limiteaza(v)}');
  }
}

Rezultat

-20 -> 0
45 -> 45
130 -> 100

Greșeli frecvente

  • Apelezi max(note) cu o listă. Funcția primește exact două numere; pentru liste folosește note.reduce(max).
  • Amesteci tipurile: max(3, 2.5) are tipul num, nu int sau double, deci nu îl poți pune direct într-o variabilă int.
  • Apelezi reduce(max) pe o listă goală: aruncă StateError. Verifică isEmpty înainte.

Comenzi înrudite

  • sqrt: Calculează rădăcina pătrată a unui număr și returnează mereu un double; pentru numere negative dă NaN.
  • pow: Ridică un număr la o putere; cu baza și exponentul întregi dă int, altfel double.
  • Random: Generatorul de numere aleatorii; nextInt(max) dă un întreg între 0 și max – 1. Cu seed, șirul se repetă.