Что выведет код Middle Dart: типы и null-safety обновлено
Dart: равенство records и списков
Вопрос
Что выведет программа? По строке на каждый вывод.
void main() {
final r1 = (1, name: 'a');
final r2 = (1, name: 'a');
print(r1 == r2);
print([1, 2] == [1, 2]);
print(r1.name + r1.$1.toString());
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: true, false, a1. Records сравниваются структурно: одинаковые поля дают true.
Что выведет
true
false
a1
Разбор
Records сравниваются структурно: одинаковые поля дают true. Списки в Dart сравниваются по ссылке, два разных литерала не равны. У record позиционное поле читается как $1, именованное по имени.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.