Выбор ответа Junior Null-safety обновлено
List<String?> и List<String>?
Вопрос
Чем отличаются List<String?> и List<String>??
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В первом null могут быть элементы, во втором сам список. Знак вопроса относится к тому типу, после которого стоит.
Варианты ответа
- В первом
nullмогут быть элементы, во втором сам списокправильный ответ - Ничем, это два способа записать одно и то же
- Первый нельзя создать через
listOf, только черезarrayListOf - В первом
nullможет быть сам список, во втором элементы
Разбор
Знак вопроса относится к тому типу, после которого стоит. List<String?> это всегда существующий список с возможными null внутри, например listOf("a", null). List<String>? это ссылка на список, которая может быть null, но элементы в нём non-null. Бывает и List<String?>?. Для очистки от null есть filterNotNull(), для пустого списка вместо null есть orEmpty().
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.