在Dart中,对于`bool`有`解析`,因为有`int`?

cc *_*ung 29 parsing boolean coercion dart

在Dart中,有一种方便的方法将String转换为int:

int i = int.parse('123');
Run Code Online (Sandbox Code Playgroud)

有什么类似的转换bools?

bool b = bool.parse('true');
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 45

布尔没有方法.

var val = 'True';
bool b = val.toLowerCase() == 'true';
Run Code Online (Sandbox Code Playgroud)

应该很容易.

  • 或者,也许:“bool b = val.toLowerCase() == true.toString().toLowerCase();”如果你足够奇怪到这种程度。 (2认同)

Ale*_*uin 15

不.只需使用:

String boolAsString;
bool b = boolAsString == 'true';
Run Code Online (Sandbox Code Playgroud)


mez*_*oni 6

您无法按照描述执行此操作,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
Run Code Online (Sandbox Code Playgroud)

这些类型也有parse方法,包括Boolean类型.

所以你不能以统一的方式做到这一点.只有你自己.