Как работают деструктурирующие объявления в Kotlin и какую роль играют функции `componentN()` в распаковке объектов данных в отдельные переменные? — ДейлиПреп