Вероятно, тема текущего урока — самая простая и самая базовая из всего, что описывалось и будет описываться в курсе. Но одновременно она наиболее «мозговзрывная».
Обработка коллекций — крайне частая операция в коде. Так или иначе, почти все, с чем мы имеем дело, представлено набором данных. Список пользователей, список страниц, список дат, список строк, список серверов и так далее. Львиная доля информации представлена в виде списков или появляется в результате обработки списков.
На текущий момент, вероятно, вам известен только один подход к их обработке — циклы. И хотя циклы действительно решают любую задачу, есть более удобные механизмы, позволяющие писать код, который проще читать и легче поддерживать. Например, в JavaScript канонический способ работы с коллекциями — функции высшего порядка. Посмотрите внимательно:
// Задача: извлечь имена пользователей, оканчивающиеся на `ya` без учета регистра, и привести имена к нижнему регистру
const users = ['PetYA', 'Vasya', 'KolyA', 'Mark', 'TonYa', 'John'];
const filteredUsers = users.map(n => n.toLowerCase()).filter(n => n.endsWith('ya'));
Возможность так писать доступна в js из коробки, но php — другое дело. Для эффективной работы вам придется «обмазаться» дополнительными библиотеками, такими как эта. Тогда код на php для той же задачи станет таким:
<?php
use function Stringy\create as s;
use Illuminate\Support\Collection;
$users = ['PetYA', 'Vasya', 'KolyA', 'Mark', 'TonYa', 'John'];
$collection = collect($users);
$filteredUsers = $collection
->map(fn($n) => strtolower($n))
->filter(fn($n) => s($n)->endsWith('ya'));
Кода, конечно, значительно больше (таков уж php), и используются аж две новых библиотеки, но появляется высокая выразительность. Когда вы начнете понимать соответствующий синтаксис, то полюбите подобные конструкции.
Коллекциям на Хекслете посвящено аж целых два с половиной курса (один из курсов готовит необходимую почву для них). Здесь тот самый случай, когда лучше значит больше. Обработка коллекций, во многом, — алгоритмическая история, и она просто так сама в голове не сформируется. Нужно время и задачки, чтобы появились необходимые связи в мозгу. И даже этого времени не хватит. Во всех оставшихся курсах так или иначе будут появляться коллекции, и вы сможете отточить свои навыки по работе с ними. А так как эта тема базовая и мало зависит от других аспектов, мы начнем затрагивать ее в самом начале, буквально со следующих курсов.
Важно, что кроме самих коллекций, навыки решения даже простейших алгоритмов хорошо развивают и структурируют рассудочное мышление. То есть эти курсы преследуют две цели:
- Научиться алгоритмически мыслить.
- Научиться быстро решать типичные задачи по работе с коллекциями.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Вебинар «Как самостоятельно учиться»