Dart предоставляет встроенную поддержку для логического типа данных. Логический тип данных в DART поддерживает только два значения — true и false. Ключевое слово bool используется для представления логического литерала в DART.
Синтаксис объявления логической переменной в DART такой, как приведенный ниже —
bool var_name = true; OR bool var_name = false
пример
void main() { bool test; test = 12 > 5; print(test); }
Это даст следующий результат —
true
пример
В отличие от JavaScript, логический тип данных распознает только литерал true как true. Любое другое значение считается ложным. Рассмотрим следующий пример —
var str = 'abc'; if(str) { print('String is not empty'); } else { print('Empty String'); }
Приведенный выше фрагмент, если он выполняется в JavaScript, выведет сообщение «String is not empty», поскольку конструкция if вернет true, если строка не пуста.
Однако в Dart str преобразуется в false как str! = True . Следовательно, фрагмент будет печатать сообщение «Пустая строка» (при запуске в режиме без проверки).
пример
Приведенный выше фрагмент при запуске в проверенном режиме вызовет исключение. То же самое показано ниже —
void main() { var str = 'abc'; if(str) { print('String is not empty'); } else { print('Empty String'); } }
В режиме проверки он выдаст следующий вывод:
Unhandled exception: type 'String' is not a subtype of type 'bool' of 'boolean expression' where String is from dart:core bool is from dart:core #0 main (file:///D:/Demos/Boolean.dart:5:6) #1 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261) #2 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)
В режиме Unchecked будет получен следующий вывод:
Empty String
Примечание. По умолчанию среда IDE WebStorm работает в проверенном режиме.