Что выведет код Junior Dart: типы и null-safety обновлено

Dart: операторы ?. и ??

Вопрос

Что выведет программа? По строке на каждый вывод.

void main() {
  String? a;
  String? b = 'flutter';
  print(a?.length);
  print(a ?? 'пусто');
  a ??= b;
  print(a);
  b ??= 'dart';
  print(b.length);
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: null, пусто, flutter, 7. a?.length при a == null даёт null без исключения. a ?? ... возвращает правую часть. a ??= b присваивает, потому что a был null. b ??= ... ничего не делает, b уже flutter, длина 7.

Что выведет

null
пусто
flutter
7

Разбор

a?.length при a == null даёт null без исключения. a ?? ... возвращает правую часть. a ??= b присваивает, потому что a был null. b ??= ... ничего не делает, b уже flutter, длина 7.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.