Подтвердить что ты не робот

В Dart, есть ли `parse` для` bool`, как есть для `int`?

в Dart, есть удобный способ преобразования строки в int:

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

есть ли что-то подобное для преобразования bools?

bool b = bool.parse('true');
4b9b3361

Ответ 1

У Bool нет методов.

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

должно быть достаточно простым.

Ответ 2

Нет. Просто используйте:

String boolAsString;
bool b = boolAsString == 'true';

Ответ 3

Вы не можете выполнить эту операцию, как описано bool.parse('true'), потому что Dart SDK является максимально легким.

Dart SDK не настолько унифицирован, как, например,.NET Framework, где все базовые типы систем имеют следующую унификацию.

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

Также эти типы имеют метод parse, включая тип Boolean.

Таким образом, вы не можете сделать это унифицированным образом. Только один.

Ответ 4

Я думаю, что это должно быть так просто.

int a = b ? 1 : 0;

Если b истинно, a будет 1. Иначе, a будет 0.