Выбор ответа Middle Dart: типы и null-safety обновлено
Dart: records
Вопрос
Что верно про records в Dart 3?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Неизменяемые анонимные агрегаты, равенство структурное: (1, 'a') == (1, 'a'). Record это анонимное неизменяемое значение из позиционных ($1, $2) и именованных полей.
Варианты ответа
- Это изменяемые структуры: можно написать
pair.$1 = 5, как у полей обычного класса - Неизменяемые анонимные агрегаты, равенство структурное:
(1, 'a') == (1, 'a')правильный ответ - Records сравниваются по ссылке, как обычные объекты, поэтому два одинаковых не равны
- Records нельзя вернуть из функции или передать параметром, их можно объявить только локально
Разбор
Record это анонимное неизменяемое значение из позиционных ($1, $2) и именованных полей. Равенство структурное: два record с одинаковой формой и равными полями равны, hashCode тоже совпадает. Поля только читаются. Главный сценарий как раз возврат нескольких значений из функции: (int, String) parse().
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.