Позиционные и именованные поля записей
Удобное чтение полей записей
«Позиционные и именованные поля записей» — бесплатный урок Dart Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.
Два способа хранить поля
Запись может хранить позиционные поля, именованные поля или оба вида сразу. Выбранный стиль определяет, как Вы будете извлекать значения.
Позиционные поля
Запишите значения без имён — и они станут позиционными полями. Именно порядок определяет смысл и место каждого из них.
var pair = (3, 7);
print(pair);Чтение позиционных полей
Обратитесь к позиционному полю с помощью знака доллара и его индекса: $1 — первое поле, $2 — второе и так далее.
var pair = (3, 7);
print(pair.$1);Позиции начинаются с единицы
Обратите внимание: позиции в записи начинаются с $1, а не с $0. Позиции $0 не существует, поэтому первое значение всегда обозначается как $1.
Именованные поля
Дайте полю имя с помощью фигурных скобок внутри круглых скобок. Благодаря именам назначение записи сразу понятно.
var p = (x: 3, y: 7);
print(p);Чтение именованных полей
Обратитесь к именованному полю по его имени через точку, как к свойству. Это понятно и удобно, а порядок здесь не имеет значения.
var p = (x: 3, y: 7);
print(p.y);Сочетание обоих стилей
Их можно объединять: сначала идут позиционные поля, затем именованные. Такое сочетание даёт порядок там, где он полезен, и подписи там, где они повышают ясность.
var r = (200, status: 'OK');
print(r.status);Именованные поля в типе
Аннотация типа повторяет структуру записи. Именованные поля указываются внутри фигурных скобок вместе со своими именами.
({int x, int y}) p = (x: 1, y: 2);
print(p.x);Имена повышают читаемость
Если значения можно перепутать, например два числа, отдавайте предпочтение именованным полям. lat: и lng: читаются гораздо лучше, чем $1 и $2.
Имена полей — часть типа
Две записи совпадают по типу только при одинаковом количестве позиционных полей и одинаковых именах именованных полей. Переименование поля меняет тип.
Возврат результата с подписями
Для результатов функций особенно удобны именованные поля. Вызывающий код читает .name, а не пытается угадать, что означает $1.
({int w, int h}) size() => (w: 4, h: 3);
print(size().w);Быстрая проверка
Как прочитать первое позиционное поле записи с именем pair?
Итоги: стили полей
Отличный прогресс! Используйте $1, $2 для позиционных полей и .name для именованных. Имена особенно полезны, когда важна ясность. ✨
Часто задаваемые вопросы
Урок «Позиционные и именованные поля записей» бесплатный?
Да — полный текст урока «Позиционные и именованные поля записей» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.
Чему я научусь в уроке «Позиционные и именованные поля записей»?
Удобное чтение полей записей Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Dart Academy?
Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Позиционные и именованные поля записей»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Dart Academy?
Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Записи: лёгкие кортежи
- Позиционные и именованные поля записей
- Деструктуризация с помощью шаблонов
- Шаблоны switch и защитные условия