РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dtTsTmClL2 103 of 128 menu

Задачи на null-безопасность в Dart. Часть 2

Дана следующая строка:

String? str = 'test';

Убедитесь, что переменная не null, и принудительно разверните её оператором !, затем выведите длину.

Дана следующая переменная:

String? str = null;

Объясните, почему оператор ! опасен на nullable-значении, и покажите безопасную альтернативу через ?? или if (str != null).

Дан следующий код:

class User { Address? address; } class Address { City? city; } class City { String? name; } User? user = User() ..address = (Address()..city = (City()..name = 'Москва'));

Выведите имя города через цепочку null-aware доступа: user?.address?.city?.name. Затем задайте user = null и убедитесь, что выражение возвращает null без ошибки.

Сделайте функцию String trimOrEmpty(String? value): если аргумент не null, верните строку без пробелов по краям через trim(), иначе — пустую строку ''.

Дана следующая переменная:

int? num = 10;

С помощью проверки if (num != null) (promotion) выведите удвоенное значение. Затем присвойте num = null и через ??= задайте значение по умолчанию 0.

Дан следующий список:

List<String?> list = ['a', null, 'b', null, 'c'];

Получите List<String> без null: через whereType<String>() или через .nonNulls (Dart 3). Выведите результат.

Дана следующая переменная:

List<int>? list = [1, 2, 3];

Проверьте через list?.contains(2) ?? false, есть ли элемент 2. Затем присвойте list = null и повторите проверку.

Сделайте функцию void printLength(String? str): если str == null — сразу выйдите из функции через return; иначе выведите длину. Покажите, что после проверки тип промоутится до String.

Сделайте функцию String? joinNullable(String? a, String? b), которая склеивает две nullable-строки через пробел. Если обе строки null — верните null; если одна из них null — верните вторую без лишнего пробела.

// примеры ожидаемого поведения: // joinNullable('hello', 'world') -> 'hello world' // joinNullable('hello', null) -> 'hello' // joinNullable(null, null) -> null

Дана следующая строка:

String? raw = '42';

Преобразуйте String? в int? через int.tryParse(raw ?? ''). Затем повторите для raw = 'abc' и для raw = null — в обоих случаях должен получиться null.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить