01. Destructing

Деструктуризация - это механизм, позволяющий извлекать данные, хранящиеся в (потенциально вложенной) структуре данных. Деструктуризация основана на описания паттернов, применяемых к структуре данных для извлечения её частей. Деструкция применяется для массивов и объектов.

Лексически, деструктуризация выполняется на присваивание (destructing assignment) — это особый синтаксис присваивания, при котором можно присвоить массив или объект сразу нескольким переменным, разбив его на части. Основная цель выражений деструктуризации - извлечь множество данных из какой-либо структуры данных за один заход.

Выражение деструктуризации состоит из:

  • Destructing source - разбиваемая структура данных

  • Destructing target - паттерн разбиения, формирующий несколько идентификаторов по которым доступны результаты разбиения.

    • Паттерн присваивания x

    • Паттерн объекта { first: «pattern», last: «pattern» }

    • Паттерн массива [ «pattern», «pattern» ] работает как и массивами, так и с любыми итерируемыми структурами.

Деструктуризация может быть применена к следующим сущностям:

  • Объекты

  • Массивы

  • Строки (как массив символов)

  • Генераторы (как массив последовательных значений, возвращаемых генератором)

  • Коллекции (как массив последовательных значений, возвращаемых итератором)

Деструктуризация может находится:

  • В любом месте где допустимо присваивание

  • В параметрах функций

Usage

Пример паттерна деструктуризации объекта:

Пример паттерна деструктуризации массива:

Паттерны можно комбинировать и вкладывать друг в друга не ограниченно:

Деструктуризация строк

Деконструкция в параметрах функций

Деструктуризация при возвращении структуры из функции.

Деструктуризация в циклах:

Деструктуризация коллекции:

Деконструкция генераторов

Last updated

Was this helpful?