Интерфейс Sequence

(PECL ds >= 1.0.0)

Введение

Последовательность описывает поведение, при котором значения распределены в одном, линейном порядке. В некоторых языках данное поведение описывается как "List". Это похоже на массив, в котором используются целочисленные ключи, за исключением нескольких моментов:

  • Значения всегда проиндексированы по порядку [0, 1, 2, …, size - 1].
  • Можно обращаться только к значениям индексированным в диапазоне [0, size - 1].

В каких случаях используется:

  • Если вы хотите использовать массив, как список (не обращая внимания на ключи).
  • Более эффективная альтернатива для SplDoublyLinkedList и SplFixedArray.

Обзор интерфейсов

interfaceDs\SequenceextendsDs\Collection, ArrayAccess {
abstractpublicallocate(int$capacity): void
abstractpublicapply(callable$callback): void
abstractpubliccapacity(): int
abstractpubliccontains(mixed...$values): bool
abstractpublicfilter(callable$callback = ?): Ds\Sequence
abstractpublicfind(mixed$value): mixed
abstractpublicfirst(): mixed
abstractpublicget(int$index): mixed
abstractpublicinsert(int$index, mixed...$values): void
abstractpublicjoin(string$glue = ?): string
abstractpubliclast(): mixed
abstractpublicmap(callable$callback): Ds\Sequence
abstractpublicmerge(mixed$values): Ds\Sequence
abstractpublicpop(): mixed
abstractpublicpush(mixed...$values): void
abstractpublicreduce(callable$callback, mixed$initial = ?): mixed
abstractpublicremove(int$index): mixed
abstractpublicreverse(): void
abstractpublicreversed(): Ds\Sequence
abstractpublicrotate(int$rotations): void
abstractpublicset(int$index, mixed$value): void
abstractpublicshift(): mixed
abstractpublicslice(int$index, int$length = ?): Ds\Sequence
abstractpublicsort(callable$comparator = ?): void
abstractpublicsorted(callable$comparator = ?): Ds\Sequence
abstractpublicsum(): int|float
abstractpublicunshift(mixed$values = ?): void
publicArrayAccess::offsetSet(mixed$offset, mixed$value): void
}

Список изменений

ВерсияОписание
PECL ds 1.3.0 Теперь класс реализует ArrayAccess.

Содержание

  • Ds\Sequence::allocate — Выделение памяти под указанную вместимость
  • Ds\Sequence::apply — Обновление всех значений применением к ним переданной callback-функции
  • Ds\Sequence::capacity — Возвращает текущую вместимость
  • Ds\Sequence::contains — Проверяет, содержатся ли в коллекции заданные значения
  • Ds\Sequence::filter — Создаёт новую последовательность из элементов, выбранных с помощью заданной callback-функции
  • Ds\Sequence::find — Поиск индекса по значению
  • Ds\Sequence::first — Возвращает первый элемент коллекции
  • Ds\Sequence::get — Возвращает значение по индексу
  • Ds\Sequence::insert — Вставляет значения по указанному индексу
  • Ds\Sequence::join — Склеивает все значения в строку
  • Ds\Sequence::last — Возвращает последнее значение коллекции
  • Ds\Sequence::map — Возвращает результат применения callback-функции ко всем значениям коллекции
  • Ds\Sequence::merge — Возвращает результат добавления всех заданных значений в коллекцию
  • Ds\Sequence::pop — Удаляет и возвращает последнее значение
  • Ds\Sequence::push — Добавляет значения в конец последовательности
  • Ds\Sequence::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
  • Ds\Sequence::remove — Удаляет и возвращает значение по индексу
  • Ds\Sequence::reverse — Переворачивает текущую коллекцию
  • Ds\Sequence::reversed — Возвращает перевёрнутую копию коллекции
  • Ds\Sequence::rotate — Перематывает последовательность на заданное число значений
  • Ds\Sequence::set — Заменяет значение по указанному индексу
  • Ds\Sequence::shift — Удаляет и возвращает первое значение
  • Ds\Sequence::slice — Возвращает под-коллекцию из заданного диапазона
  • Ds\Sequence::sort — Сортирует коллекцию
  • Ds\Sequence::sorted — Возвращает отсортированную по значению копию коллекции
  • Ds\Sequence::sum — Возвращает сумму всех значений коллекции
  • Ds\Sequence::unshift — Добавляет значения в начало последовательности
To Top