Php: Ленивые коллекции

PHP: Объектно-ориентированный дизайн 12 сообщений
Обновлено: 04 мая, 12:32
195
Студентов
82%
Завершения

В этой задаче необходимо реализовать ленивую коллекцию.

src\Enumerable.php

Реализуйте класс Enumerable, который работает похожим образом, что и Collect, но предназначен для обработки коллекций ассоциативных массивов. Основная особенность работы данного класса заключается в том, что он использует lazy вариант обработки.

Примеры

<?php

$elements = [
    ['key' => 'value', 'year' => 1932],
    ['key' => '', 'year' => 1100],
    ['key' => 'value', 'year' => 32]
];
$coll = Enumerable::wrap($elements);
$newColl = $coll->where('key', 'value')->where('year', 1932);
// Эта функция не сохраняет ключи
$newColl->all(); // ['key' => 'value', 'year' => 1932]

Подсказки

  • Функции, которые нужно реализовать, описаны в интерфейсе EnumerableInterface
  • Усложнённый вариант: добавьте мемоизацию

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
900
упражнений
2000+
часов теории
3200
тестов