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

Запись record

Запись record в Dart - это неизменяемая структура данных, которая позволяет объединить несколько значений разных типов в одну переменную. Запись создаётся с помощью круглых скобок, внутри которых через запятую перечисляются значения. Значения могут быть как позиционными, так и именованными. Позиционные значения передаются в порядке их следования, а именованные - с указанием имени поля перед значением.

Записи удобны, когда нужно вернуть несколько значений из функции или сгруппировать связанные данные без создания отдельного класса. Доступ к позиционным полям осуществляется через геттеры $1, $2 и так далее, а к именованным - через их имена.

Синтаксис

// Позиционная запись var record = (value1, value2, value3); // Именованная запись var record = (name1: value1, name2: value2); // Смешанная запись var record = (value1, name2: value2); // Доступ к позиционным полям record.$1; record.$2; // Доступ к именованным полям record.name2;

Пример

Давайте создадим позиционную запись из трёх значений и выведем каждое из них на экран:

void main() { var res = (1, 'abcde', true); print(res.$1); print(res.$2); print(res.$3); }

Результат выполнения кода:

1 "abcde" true

Пример

Давайте создадим именованную запись и обратимся к её полям по именам:

void main() { var res = (name: 'abcde', age: 25); print(res.name); print(res.age); }

Результат выполнения кода:

"abcde" 25

Пример

Давайте создадим смешанную запись, в которой первое значение позиционное, а второе - именованное:

void main() { var res = (1, name: 'abcde'); print(res.$1); print(res.name); }

Результат выполнения кода:

1 "abcde"

Пример

Записи можно возвращать из функций. Давайте создадим функцию, которая возвращает запись с двумя значениями:

(int, String) getData() { return (1, 'abcde'); } void main() { var res = getData(); print(res.$1); print(res.$2); }

Результат выполнения кода:

1 "abcde"

Пример

Записи можно деструктурировать, распаковывая их значения в отдельные переменные:

void main() { var (a, b, c) = (1, 'abcde', true); print(a); print(b); print(c); }

Результат выполнения кода:

1 "abcde" true

Смотрите также

  • ключевое слово var,
    которое объявляет переменную
  • ключевое слово function,
    которое объявляет функцию
  • оператор arrow,
    который задаёт краткую форму функции
  • ключевое слово return,
    которое возвращает значение из функции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить