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

Тип Record

Тип Record в Dart представляет собой неизменяемую коллекцию из нескольких полей, которые могут иметь разные типы. В отличие от списков и карт, поля кортежа имеют фиксированное количество и доступны по позиции или по имени. Кортежи удобны для возврата нескольких значений из функции без создания отдельного класса.

Синтаксис

// Позиционный кортеж (int, String) record = (1, 'abcde'); // Именованный кортеж ({int x, String y}) record = (x: 1, y: 'abcde'); // Смешанный кортеж (int, {String y}) record = (1, y: 'abcde');

Пример

Давайте создадим позиционный кортеж из трёх полей разных типов и выведем его на экран:

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

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

(1, abcde, true)

Пример

Давайте получим доступ к полям кортежа по их позиции с помощью свойства $1, $2 и так далее:

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

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

1 "abcde" true

Пример

Давайте создадим именованный кортеж и получим доступ к его полям по именам:

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

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

1 "abcde"

Пример

Давайте используем кортеж для возврата нескольких значений из функции:

(int, String) getValues() { return (1, 'abcde'); } void main() { var res = getValues(); 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

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

  • тип Function,
    который представляет функции
  • тип Type,
    который представляет типы данных
  • тип dynamic,
    который допускает любой тип
  • тип Symbol,
    который представляет идентификаторы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить