Ce face bool.parse
bool.parse('true') returnează true, iar bool.parse('false') returnează false. Orice alt text aruncă FormatException; bool.tryParse returnează în schimb null.
Implicit contează literele mari și mici: 'True' nu este acceptat. Cu caseSensitive: false sunt acceptate și 'TRUE' sau 'False'. Alte forme ('da', '1', 'yes') nu sunt înțelese; pentru ele scrii propria funcție. Spațiile nu sunt eliminate, așa că apelează întâi trim().
Parametri
| Parametru | Descriere |
|---|---|
source |
Textul de transformat. |
caseSensitive |
false acceptă orice combinație de litere mari și mici. |
Ce returnează
parse: un bool. tryParse: un bool?.
Exemple
Exemplul 1: Texte acceptate și respinse
void main() {
print(bool.parse('true'));
print(bool.parse('false'));
print(bool.tryParse('True'));
print(bool.tryParse('True', caseSensitive: false));
print(bool.tryParse('da'));
print(bool.tryParse(' true '));
try {
bool.parse('1');
} on FormatException catch (e) {
print('Eroare: ${e.message}');
}
}
Rezultat
true
false
null
true
null
null
Eroare: Invalid boolean
Exemplul 2: Setări citite dintr-un fișier de configurare
bool citesteOptiune(String valoare) {
var curat = valoare.trim().toLowerCase();
return bool.tryParse(curat) ?? const {'da', '1', 'yes', 'on'}.contains(curat);
}
void main() {
var config = {'notificari': 'TRUE', 'mod_intunecat': 'da', 'sunet': 'off', 'beta': ' false '};
config.forEach((cheie, valoare) {
print('$cheie = ${citesteOptiune(valoare)}');
});
}
Rezultat
notificari = true
mod_intunecat = true
sunet = false
beta = false
Greșeli frecvente
- Te aștepți ca
bool.parse('1')saubool.parse('da')să deatrue. Doar'true'și'false'sunt acceptate. - Scrii
bool.parse(text) == truepentru texte venite de la utilizator: un text greșit oprește programul. FoloseștetryParsecu o valoare implicită.
Comenzi înrudite
bool: Tipul logic din Dart, cu exact două valori: true și false. Condițiile din if și while trebuie să fie bool.int.parse: Transformă un text în număr întreg; parse aruncă FormatException la text greșit, tryParse returnează null.FormatException: Excepția aruncată când un text nu are formatul așteptat (int.parse(‘abc’), JSON greșit, dată invalidă).