web-dev-qa-db-fra.com

à Dart, existe-t-il une «analyse» pour «bool» comme pour «int»?

dans Dart, il existe un moyen pratique de convertir une chaîne en entier:

int i = int.parse('123');

y a-t-il quelque chose de similaire pour convertir les bools?

bool b = bool.parse('true');
33
cc young

Bool n'a aucune méthode.

var val = 'True';
bool b = val.toLowerCase() == 'true';

devrait être assez facile.

35
Günter Zöchbauer

Non, utilisez simplement:

String boolAsString;
bool b = boolAsString == 'true';
13
Alexandre Ardhuin

Vous ne pouvez pas effectuer cette opération comme vous le décrivez bool.parse('true') car Dart SDK est aussi léger que possible.

Dart SDK n'est pas aussi unifié que, par exemple, NET Framework où tous les types de système de base ont l'unification suivante.

IConvertible.ToBoolean
IConvertible.ToByte
IConvertible.ToChar
IConvertible.ToDateTime
IConvertible.ToDecimal
IConvertible.ToDouble
IConvertible.ToInt16
IConvertible.ToInt32
IConvertible.ToInt64
IConvertible.ToSByte
IConvertible.ToSingle
IConvertible.ToString
IConvertible.ToUInt16
IConvertible.ToUInt32
IConvertible.ToUInt64

Ces types ont également la méthode parse, y compris le type Boolean.

Vous ne pouvez donc pas le faire de manière unifiée. Seulement par toi-même.

6
mezoni

Je pense que cela devrait être aussi simple.

int a = b ? 1 : 0;

Si b est vrai, a sera 1. Sinon, a sera 0.

0
ThitSarNL