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

Dart: collection if, for и spread

Вопрос

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

void main() {
  const admin = false;
  List<int>? extra;
  final list = [
    0,
    if (admin) 100,
    for (var i = 1; i <= 3; i++) i * i,
    ...?extra,
    ...[7, 8],
  ];
  print(list);
  print(list.length);
}

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

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

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

Коротко

Код выведет: [0, 1, 4, 9, 7, 8], 6. if (admin) ложно, 100 не добавляется. for добавляет квадраты 1, 4, 9. ...?extra при null ничего не добавляет и не падает. ...[7, 8] раскрывает список.

Что выведет

[0, 1, 4, 9, 7, 8]
6

Разбор

if (admin) ложно, 100 не добавляется. for добавляет квадраты 1, 4, 9. ...?extra при null ничего не добавляет и не падает. ...[7, 8] раскрывает список.

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

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