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ștenote.reduce(max). - Amesteci tipurile:
max(3, 2.5)are tipulnum, nuintsaudouble, 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ă.