web-dev-qa-db-ja.com

Dartでは、 `int`の場合と同様に` bool`の `parse`はありますか?

dartには、Stringをintに変換する便利な方法があります。

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

ブール値を変換するための同様のものはありますか?

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

Boolにはメソッドがありません。

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

十分簡単なはずです。

35

いいえ。単に以下を使用します。

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

Dart SDKは可能な限り軽量であるため、bool.parse('true')を記述しているとおりにこの操作を実行することはできません。

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メソッドがあります。

したがって、これを統一された方法で行うことはできません。自分だけで。

6
mezoni

それはこれで簡単だと思います。

int a = b ? 1 : 0;

Bがtrueの場合、aは1になります。それ以外の場合、aは0になります。

0
ThitSarNL