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

时间:2014-01-15 09:46:28

标签: parsing boolean dart coercion

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

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

有什么类似的转换bools?

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

5 个答案:

答案 0 :(得分:29)

布尔没有方法。

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

应该很容易。

答案 1 :(得分:9)

没有。只需使用:

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

答案 2 :(得分:5)

您无法在描述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类型。

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

答案 3 :(得分:2)

实际上是的!

就这么简单

bool.fromEnvironment(strValue, defaultValue: defaultValue);

请记住,您可能需要做strValue.toLowerCase()

答案 4 :(得分:0)

我认为这应该很容易。

int a = b ? 1 : 0;

如果b为true,则a为1。否则,a为0。