Утверждение не-null значения в Dart
Оператор ! сообщает компилятору, что
nullable-значение точно не null. После
него тип становится обычным, и можно вызывать
методы без ?.:
String? sure = 'ok';
print(sure!.length);
Если предположение неверно и там все же null,
программа остановится с ошибкой. Такой прием
оставляют для редких случаев, когда пустота
уже отсечена логикой выше, но компилятор
этого не видит:
String? fail = null;
// print(fail!.length); // ошибка при запуске
В учебных и рабочих задачах чаще хватает
?., проверки if и ??:
! не заменяет их, а снимает только
предупреждение компилятора ценой риска:
String? token = 'data';
var len = token != null ? token.length : 0;
print(len);
Дана переменная:
String? key = 'secret';
Выведите длину строки одним выражением.
Дана переменная:
String? item = 'x';
Сначала сравните item с null.
Только если значение есть, выведите строку
в верхнем регистре.